|
我们在开发中为了适配iPhoneX之后的刘海屏幕,经常得加上各种判断,每年苹果除了新的机型之后可能又得修改
所以给大家介绍一个通用的方法
#define kIsBangsScreen ({\
BOOL isBangsScreen = NO; \
if (@available(iOS 11.0, *)) { \
UIWindow *window = [[UIApplication sharedApplication].windows firstObject]; \
isBangsScreen = window.safeAreaInsets.bottom > 0; \
} \
isBangsScreen; \
})
在这里之所以使用 windows 是因为,keyWindow、delegate.window有时候会获取不到,为null
下面这种也还是可以的
#define isIphoneX ({\
BOOL isPhoneX = NO;\
if (@available(iOS 11.0, *)) {\
if (!UIEdgeInsetsEqualToEdgeInsets([UIApplication sharedApplication].delegate.window.safeAreaInsets, UIEdgeInsetsZero)) {\
isPhoneX = YES;\
}\
}\
isPhoneX;\
})
来源:https://www.cnblogs.com/hecanlin/p/13813175.html |