iOS开发 iPhoneX以上机型适配判断

其实iphoneX以上(包括新发布)的机型无非就是多了刘海屏,多了safeArea,所以只要判断有没有safeArea就可以了。
用xcode10打包的前提下
iOS11没有刘海设备的安全区域大小是UIEdgeInsetsMake(0, 0, 0, 0);iOS12没有刘海设备的安全区域大小是UIEdgeInsetsMake(20, 0, 0, 0)
所以这里直接判断safeArea的top是否大于20,大于20是有刘海的设备,否则是无刘海设备
当然也可以判断safeArea的bottom取值,这里判断的是safeArea的top是否大于20
附上代码

#define isIphoneX ({\
int tmp = 0;\
if (@available(iOS 11.0, *)) {\
if ([UIApplication sharedApplication].delegate.window.safeAreaInsets.top > 20) {\
tmp = 1;\
}else{\
tmp = 0;\
}\
}else{\
tmp = 0;\
}\
tmp;\
})

你可能感兴趣的:(iOS开发 iPhoneX以上机型适配判断)