Objective-C
// iPhoneX、iPhoneXR、iPhoneXs、iPhoneXs Max等
// 判断刘海屏,返回YES表示是刘海屏
// UIView中的safeAreaInsets如果是刘海屏就会发生变化,普通屏幕safeAreaInsets恒等于UIEdgeInsetsZero
- (BOOL)isNotchScreen {
if (@available(iOS 11.0, *)) {
if (!UIEdgeInsetsEqualToEdgeInsets(self.view.safeAreaInsets, UIEdgeInsetsZero)) {
return YES;
}
}
return NO;
}
Swift
extension UIViewController {
/// iPhoneX、iPhoneXR、iPhoneXs、iPhoneXs Max等
/// 判断刘海屏,返回true表示是刘海屏
/// UIView中safeAreaInsets如果是刘海屏就会发生变化,普通屏幕safeAreaInsets恒等于UIEdgeInsetsZero
var isNotchScreen: Bool {
if #available(iOS 11.0, *) {
if self.view.safeAreaInsets != UIEdgeInsets.zero {
return true
}
}
return false
}
}