iOS灵活适配刘海屏手机的顶部状态栏高度和底部安全距离
生活随笔
收集整理的這篇文章主要介紹了
iOS灵活适配刘海屏手机的顶部状态栏高度和底部安全距离
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我們知道在劉海屏手機出來之前,iOS App的頂部狀態欄高度為20pt,導航欄的可布局區域高度為44pt,整個導航欄高度為64pt,底部安全距離為0。
在劉海屏手機出來后,劉海屏機型iOS App的頂部狀態欄高度為44pt,導航欄的可布局區域高度為44pt,整個導航欄高度為88pt,底部安全距離為34pt。
我們除了要考慮手機在正常狀態下的適配以外,還要考慮通話、定位、錄屏狀態下時,因為頂部還會多出顯示狀態的區域導致界面變形。我們可以動態獲取狀態欄高度來進行適配甚至判斷是否是劉海屏機型
swift:
OC同上原理
double statusBarHeight = [[UIApplication sharedApplication] statusBarFrame].size.height;我之前在做適配時,是通過手機屏幕分辨率判斷機型的方法來適配的,這里也貼出來參考下
//判斷是否是ipad #define isPad ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) //判斷iPhoneX #define IS_IPHONE_X ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) && !isPad : NO) //判斷iPHoneXr #define IS_IPHONE_Xr ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(828, 1792), [[UIScreen mainScreen] currentMode].size) && !isPad : NO) //判斷iPhoneXs #define IS_IPHONE_Xs ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) && !isPad : NO) //判斷iPhoneXs Max #define IS_IPHONE_Xs_Max ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1242, 2688), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)//iPhoneX系列 #define Height_StatusBar ((IS_IPHONE_X==YES || IS_IPHONE_Xr ==YES || IS_IPHONE_Xs== YES || IS_IPHONE_Xs_Max== YES) ? 44.0 : 20.0) #define Height_NavBar ((IS_IPHONE_X==YES || IS_IPHONE_Xr ==YES || IS_IPHONE_Xs== YES || IS_IPHONE_Xs_Max== YES) ? 88.0 : 64.0) #define Height_TabBar ((IS_IPHONE_X==YES || IS_IPHONE_Xr ==YES || IS_IPHONE_Xs== YES || IS_IPHONE_Xs_Max== YES) ? 83.0 : 49.0)總結
以上是生活随笔為你收集整理的iOS灵活适配刘海屏手机的顶部状态栏高度和底部安全距离的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mysql 事件调度器详解(Event
- 下一篇: 罗斯蒙特流量计安装上的五大注意事项