原文
iOS劉海手機(jī)屏幕的適配
判斷是不是iphone x齊劉海屏幕
iOS開發(fā) iPhoneX以上機(jī)型適配判斷
判斷iPhone X之后帶劉海的機(jī)型
iOS11之后新增了一個(gè)safeAreaInsets屬性
可以利用 CGFloat a = [[UIApplication sharedApplication] delegate].window.safeAreaInsets.bottom;
當(dāng)a大于0時(shí)即是iPhone X 银觅,XR,XS 究驴,XS Max等。
if (@available(iOS 11.0, *)) {
CGFloat a = [[UIApplication sharedApplication] delegate].window.safeAreaInsets.bottom;
NSLog(@"%f",a);
} else {
// Fallback on earlier versions
}
#define IPHONE_X \
({BOOL isPhoneX = NO;\
if (@available(iOS 11.0, *)) {\
isPhoneX = [[UIApplication sharedApplication] delegate].window.safeAreaInsets.bottom > 0.0;\
}\
(isPhoneX);})
#define isIphoneX ({\
BOOL isPhoneX = NO;\
if (@available(iOS 11.0, *)) {\
if (!UIEdgeInsetsEqualToEdgeInsets([UIApplication sharedApplication].delegate.window.safeAreaInsets, UIEdgeInsetsZero)) {\
isPhoneX = YES;\
}\
}\
isPhoneX;\
})
swift
func isiPhoneXScreen() -> Bool {
guard #available(iOS 11.0, *) else {
return false
}
return UIApplication.shared.windows[0].safeAreaInsets != UIEdgeInsets.zero
}