Swift Extension Overall全局扩展

📅 发布时间:2026/7/8 3:14:57 👁️ 浏览次数:
Swift Extension Overall全局扩展
一直觉得自己写的不是技术而是情怀一个个的教程是自己这一路走来的痕迹。靠专业技能的成功是最具可复制性的希望我的这条路能让你们少走弯路希望我能帮你们抹去知识的蒙尘希望我能帮你们理清知识的脉络希望未来技术之巅上有你们也有我。Swift Extension Overall全局扩展文章目录效果图片代码源码使用效果该封装是对App的window, navigationwidthheight的全局获取进行操作图片代码源码/// 当前KeyWindow public var keyWindowApp: UIWindow? { return UIApplication.shared.connectedScenes .compactMap { $0 as? UIWindowScene } .flatMap { $0.windows } .first { $0.isKeyWindow } } // MARK: - StatusBar /// 状态栏高度 public var statusBarHeight: CGFloat { return UIApplication.shared.connectedScenes .compactMap { $0 as? UIWindowScene } .first?.statusBarManager?.statusBarFrame.height ?? 44 } // MARK: - SafeArea /// 安全区域顶部 public var safeAreaTop: CGFloat { return keyWindowApp?.safeAreaInsets.top ?? statusBarHeight } /// 安全区域底部 public var safeAreaBottom: CGFloat { return keyWindowApp?.safeAreaInsets.bottom ?? 0 } /// 安全区域Insets public var safeAreaInsetsApp: UIEdgeInsets { return keyWindowApp?.safeAreaInsets ?? .zero } /// 是否刘海屏 public var hasNotch: Bool { return safeAreaBottom 0 } // MARK: - Screen /// 屏幕宽度 public var screenWidth: CGFloat { return UIScreen.main.bounds.width } /// 屏幕高度 public var screenHeight: CGFloat { return UIScreen.main.bounds.height } /// 安全区域内高度 public var safeScreenHeight: CGFloat { return screenHeight - safeAreaTop - safeAreaBottom } // MARK: - Navigation /// 导航栏高度 public func navBarHeight(_ vc: UIViewController?) - CGFloat { return vc?.navigationController?.navigationBar.frame.height ?? 44 } /// 顶部总高度 public func totalTopHeight(_ vc: UIViewController?) - CGFloat { return statusBarHeight navBarHeight(vc) } // MARK: - TabBar /// TabBar总高度 public func totalBottomHeight(_ vc: UIViewController?) - CGFloat { if let tab vc?.tabBarController?.tabBar, !tab.isHidden { return tab.frame.height } return 49 }使用override func viewDidLoad() { super.viewDidLoad() view.backgroundColor .white /// 当前KeyWindow keyWindowApp /// 状态栏高度 statusBarHeight /// 安全区域顶部 safeAreaTop /// 安全区域底部 safeAreaBottom /// 安全区域Insets safeAreaInsetsApp /// 是否刘海屏 hasNotch /// 屏幕宽度 screenWidth /// 屏幕高度 screenHeight /// 安全区域内高度 safeScreenHeight /// 导航栏高度 navBarHeight(self) /// 顶部总高度 totalTopHeight(self) /// TabBar总高度 totalBottomHeight(self) }