1.在項目中添加機型判斷:.iPhoneXs屏幕尺寸和iPhoneX一樣的朵纷,不需要再另外適配摔吏,由于iPhoneXR和iPhoneXs Max屏幕寬高一樣誉裆,故只需添加對iPhoneXR和iPhoneXs Max機型判斷即可勘天。
/**
?*斷當前設備是否為iPhoneXR 或 iPhoneXs Max 的屏幕尺寸
?*兩個判斷依據(jù):
?* 1.是否運行在Phone 模式下
?* 2.是否屏幕尺寸為(828, 1792)||(1242, 2688)
?* (UI_USER_INTERFACE_IDIOM() ==UIUserInterfaceIdiomPhone) && (CGSizeEqualToSize([UIScreenmainScreen].currentMode.size, CGSizeMake(828, 1792) ||(CGSizeEqualToSize([UIScreen mainScreen].currentMode.size, CGSizeMake(1242,2688)))
?*/
+(BOOL)isIPhoneXROrXsMax {
??? if(UI_USER_INTERFACE_IDIOM() != UIUserInterfaceIdiomPhone) {
???????return NO;
??? }
??? returnCGSizeEqualToSize([UIScreen mainScreen].bounds.size, CGSizeMake(414, 896));
}
另外饰及,由于項目中對狀態(tài)欄龙助、導航欄以及底部Tab bar都加了iPhoneX和非iPhoneX的高度區(qū)分砰奕,所以我們可以再添加一個新的方法蛛芥,判斷是否是iPhoneX系列(劉海屏系列),包括iPhoneX军援、iPhoneXs仅淑、iPhoneXR以及iPhoneXs
Max,這些設備的狀態(tài)欄胸哥、導航欄以及Tab bar高度都是一樣涯竟,項目中以前有這塊的邏輯統(tǒng)一調整成此方法即可。
/**
?*斷當前設備是否為iPhoneX 系列的屏幕尺寸(用來設置狀態(tài)欄/導航欄/Tabbar)
?*兩個判斷依據(jù):
?* 1.是否運行在Phone 模式下
?* 2.是否屏幕尺寸為(414, 896)||(375, 812)
?* (UI_USER_INTERFACE_IDIOM() ==UIUserInterfaceIdiomPhone) && (CGSizeEqualToSize([UIScreenmainScreen].currentMode.size, CGSizeMake(828, 1792) ||(CGSizeEqualToSize([UIScreen mainScreen].currentMode.size, CGSizeMake(1242,2688)))
?*/
+(BOOL)isIPhoneXseries {
??? if(UI_USER_INTERFACE_IDIOM() != UIUserInterfaceIdiomPhone) {
???????return NO;
??? }
??? returnCGSizeEqualToSize([UIScreen mainScreen].bounds.size, CGSizeMake(414, 896)) ||CGSizeEqualToSize([UIScreen mainScreen].bounds.size, CGSizeMake(375, 812));
}
2.開屏圖片添加:需要添加一張iPhoneXR和iPhoneXs Max的啟動圖片空厌。
3.項目中對設備作判斷且全屏展示的地方需要添加對iPhoneXR和iPhoneXs Max的判斷庐船,添加新尺寸的圖片。
4. 項目中部分宏定義用到判斷iPhoneX的方法嘲更,須將之前判斷iPhoneX的方法改為判斷iPhoneX系列的方法筐钟。
5. 如果有新手蒙版也需將對iPhoneX的判斷方法改為判斷iPhoneX系列的方法。
6. 項目中其他對iPhoneX的判斷:圖片高度赋朦,視圖位置等篓冲。