前言
最近發(fā)現(xiàn) iOS 14 的狀態(tài)欄高度不知道什么時候就變了,亂七八糟的氮兵,之前寫的宏:
//判斷是否是iPhone X
public let isiPhoneXLater = Bool(SCREEN_WIDTH >= 375.0 && SCREEN_HEIGHT >= 812.0 && isPhone)
/// 狀態(tài)欄高度
public let STATUSBAR_HEIGHT = CGFloat(isiPhoneXLater ? 44 : 20)
也已經(jīng)不好使了裂逐,只適用于 iOS 14 之前的。
測試對比
因為 iOS 14 之后的各種尺寸都有泣栈,亂的一筆卜高,和iOS 13.5 對比大概如下:
測試Xcode版本
image.png
用系統(tǒng)的 API 獲取高度:
/// Status Bar 的 Frame
public let StatusBarFrame = UIApplication.shared.statusBarFrame
/// Status Bar 的 Height
public let StatusBarHeight = StatusBarFrame.height
po UIApplication.shared.statusBarFrame
iPhone 11
iOS 13.5
? (0.0, 0.0, 414.0, 44.0)
iOS 14.2
? (0.0, 0.0, 414.0, 48.0)
iPhone 11 Pro
iOS 13.5
? (0.0, 0.0, 375.0, 44.0)
iOS 14.2
? (0.0, 0.0, 375.0, 44.0)
iPhone 11 Pro Max
iOS 13.5
? (0.0, 0.0, 414.0, 44.0)
iOS 14.2
? (0.0, 0.0, 414.0, 44.0)
iPhone 12,iPhone 12 Pro南片,iPhone 12 Pro Max
iOS 14.2
? (0.0, 0.0, 390.0, 47.0)
iPhone 12 mini
? (0.0, 0.0, 375.0, 44.0)
最坑的就是這個機型掺涛,系統(tǒng)獲取的是 44 但真實的并不是 44 ,感覺應(yīng)該是系統(tǒng)的 Bug疼进。