// // QSLConst.swift // QuickSearchLocation // // Created by mac on 2024/4/10. // import Foundation import UIKit struct QSLConst { // MARK: 1.1、是否是缺口屏幕(刘海屏)或者灵动岛的屏幕 // 是否是缺口屏幕(刘海屏)或者灵动岛的屏幕 static var qsl_isIPhoneNotch: Bool { if #available(iOS 11.0, *) { if let window = UIApplication.keyWindow { return window.safeAreaInsets.bottom > 0 } else { return false } } else { return UIApplication.shared.statusBarFrame.height > 20 } } // MARK: 2.1、屏幕的宽 /// 屏幕的宽 static var qsl_kScreenW: CGFloat { return UIScreen.main.bounds.width } // MARK: 2.2、屏幕的高 /// 屏幕的高 static var qsl_kScreenH: CGFloat { return UIScreen.main.bounds.height } // MARK: 2.3、获取statusBar的高度 /// 获取statusBar的高度 static var qsl_kStatusBarFrameH: CGFloat { if #available(iOS 13.0, *) { let window: UIWindow? = UIApplication.shared.windows.first let statusBarHeight = (window?.windowScene?.statusBarManager?.statusBarFrame.height) ?? 0 return statusBarHeight } else { // 防止界面没有出来获取为0的情况 return UIApplication.shared.statusBarFrame.height > 0 ? UIApplication.shared.statusBarFrame.height : 44 } } // MARK: 2.4、获取导航栏的高度 /// 获取导航栏的高度 static var qsl_kNavFrameH: CGFloat { return 44 + qsl_kStatusBarFrameH } // MARK: 2.5、屏幕底部Tabbar高度 /// 屏幕底部Tabbar高度 static var qsl_kTabbarFrameH: CGFloat { return QSLConst.qsl_isIPhoneNotch ? 83 : 49 } // MARK: 2.6、屏幕底部刘海高度 /// 屏幕底部刘海高度 static var qsl_kTabbarBottom: CGFloat { return QSLConst.qsl_isIPhoneNotch ? 34 : 0 } // MARK: 2.7、屏幕比例 /// 屏幕比例 static var qsl_kPixel: CGFloat { return 1.0 / UIScreen.main.scale } static var qsl_kScale: CGFloat { return QSLConst.qsl_kScreenW / CGFloat(375.0) } }