iOS:iPhone12及其他齊劉海機(jī)型適配

2020.10.14
iphone12的適配
iPhone12 mini 5.4英寸
iPhone12 6.1 英寸
iPhone12 Pro 6.1 英寸
iPhone12 Pro MAX 6.4 英寸

使用[[UIApplication sharedApplication] statusBarFrame].size.height>20 方法判斷是否有齊劉海
不要使用 對手機(jī)寬高的判斷,需要適配的機(jī)型越來越多,使用寬高不合理 每次都要增加

我這里常用的方法

#define kStatusBarHeight [[UIApplication sharedApplication] statusBarFrame].size.height
#define kNavBarHeight 44.0
#define kTabBarHeight ([[UIApplication sharedApplication] statusBarFrame].size.height>20?83:49)
#define kBottomBarHeight ([[UIApplication sharedApplication] statusBarFrame].size.height>20 ? 34.0 : 0)

----------分割線-----------

啟動圖尺寸 機(jī)型 命名

640?×?960 iPhone4s Default@2x(3.5英寸)

640?×?1136 iPhone5s Default-568h@2x(4.0英寸)

750?×?1334 iPhone Default-667h@2x(4.7英寸)

1242?×?2208 iPhonePlus Default-736h@3x(5.5英寸)

1125?×?2436 iPhoneX, iPhoneXS ,iPhone11Pro Default-812h@3x(5.8英寸)

828 x 1792 iPhoneXR,iphone11 Default-828h@2x(6.1英寸)

1242 x 2688 iPhoneX Max, iPhoneXs Max,iPhone 11 Pro Max Default-1242h@3x(6.5英寸)

以上是我們需要適配的手機(jī)機(jī)型,其中iphon4s我這已經(jīng)不適配了

iphonex 系列導(dǎo)航欄和tabbar的高度發(fā)生了變化,就是“齊劉海”+底部觸摸條

OC:

#define iphoneX                    ([[UIApplication sharedApplication] statusBarFrame].size.height>20?YES:NO)
#define kNavBarHeight              (iphoneX ? 88.0 : 64.0)
#define KTabBarHeight              iphoneX ? CGFloat(83.0) : CGFloat(49.0)
#define kBottomBarHeight        (iphoneX ? 34.0 : 0)
#define kContentHeight             (kScreenHeight - kNavBarHeight-kBottomBarHeight)

swift:

let KIphoneX = UIApplication.shared.statusBarFrame.size.height > 20 ? true : false

let KNavgationHeight = KIphoneX ? CGFloat(88.0) : CGFloat(64.0)

let KTabBarHeight = KIphoneX ? CGFloat(83.0) : CGFloat(49.0)

let kBottomBarHeight = KIphoneX ? CGFloat(34.0) : CGFloat(0)
        
let KHeightTime = kScreenHeight / 667

還有一種判斷是否為iphonex的方法

#define iphoneX                    ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? (CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size)||CGSizeEqualToSize(CGSizeMake(1242, 2688), [[UIScreen mainScreen] currentMode].size)||CGSizeEqualToSize(CGSizeMake(828, 1792), [[UIScreen mainScreen] currentMode].size)) : NO)

根據(jù)手機(jī)的大小判斷

補充:
北京時間 2019.9.11 蘋果秋季發(fā)布會
發(fā)布三款新的iphone
iphone11 大小和 iPhoneXR(828 x 1792) 相同 6.1 寸
iPhone 11 Pro 大小和 iPhoneXS(1125?×?2436) 相同 5.8 寸
iPhone 11 Pro Max 大小和 iPhoneXs Max(1242 x 2688) 相同 6.5 寸
適配方法和上面相同
http://tech.sina.com.cn/mobile/n/n/2019-09-11/doc-iicezzrq4983192.shtml

參考鏈接:iPhone X,iPhone XS,iPhone XR,iPHone XS Max 適配
參考鏈接:iOS iPhoneX 適配

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容