日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

iOS灵活适配刘海屏手机的顶部状态栏高度和底部安全距离

發(fā)布時(shí)間:2024/1/1 编程问答 107 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS灵活适配刘海屏手机的顶部状态栏高度和底部安全距离 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

我們知道在劉海屏手機(jī)出來之前,iOS App的頂部狀態(tài)欄高度為20pt,導(dǎo)航欄的可布局區(qū)域高度為44pt,整個(gè)導(dǎo)航欄高度為64pt,底部安全距離為0。
在劉海屏手機(jī)出來后,劉海屏機(jī)型iOS App的頂部狀態(tài)欄高度為44pt,導(dǎo)航欄的可布局區(qū)域高度為44pt,整個(gè)導(dǎo)航欄高度為88pt,底部安全距離為34pt。
我們除了要考慮手機(jī)在正常狀態(tài)下的適配以外,還要考慮通話、定位、錄屏狀態(tài)下時(shí),因?yàn)轫敳窟€會(huì)多出顯示狀態(tài)的區(qū)域?qū)е陆缑孀冃巍N覀兛梢詣?dòng)態(tài)獲取狀態(tài)欄高度來進(jìn)行適配甚至判斷是否是劉海屏機(jī)型
swift:

//獲取狀態(tài)欄的高度,全面屏手機(jī)的狀態(tài)欄高度為44pt,非全面屏手機(jī)的狀態(tài)欄高度為20pt //狀態(tài)欄高度 let statusBarHeight = UIApplication.shared.statusBarFrame.height; //導(dǎo)航欄高度 let navigationHeight = (statusBarHeight + 44) //tabbar高度 let tabBarHeight = (statusBarHeight==44 ? 83 : 49) //頂部的安全距離 let topSafeAreaHeight = (statusBarHeight - 20) //底部的安全距離,全面屏手機(jī)為34pt,非全面屏手機(jī)為0pt let bottomSafeAreaHeight = (tabBarHeight - 49)

OC同上原理

double statusBarHeight = [[UIApplication sharedApplication] statusBarFrame].size.height;

我之前在做適配時(shí),是通過手機(jī)屏幕分辨率判斷機(jī)型的方法來適配的,這里也貼出來參考下

//判斷是否是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)

總結(jié)

以上是生活随笔為你收集整理的iOS灵活适配刘海屏手机的顶部状态栏高度和底部安全距离的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。