方法1:
//判斷是否為iPhone X #define IPHONE_X \ ({BOOL isPhoneX = NO;\ if (@available(iOS 11.0, *)) {\ isPhoneX = [[UIApplication sharedApplication] delegate].window.safeAreaInsets.bottom > 0.0;\ }\ (isPhoneX);})
//系統導航欄總高度 #define bAllNavTotalHeight (IPHONE_X ? 88 : 64) // 底部安全區域遠離高度 現在使用 #define kBottomSafeHeight (IPHONE_X?(34):(0)) //狀態欄高度 #define STATUSBAR_HEIGHT (IPHONE_X ? 44 : 20)
方法2:
/** 系統高度,寬度 bounds */ #define SCREEN_WIDTH ([[UIScreen mainScreen] bounds].size.width) #define SCREEN_HEIGHT ([[UIScreen mainScreen] bounds].size.height) //是否劉海屏 #define kDevice_Is_iPhoneXScreen (SCREEN_HEIGHT == 812.0f || SCREEN_HEIGHT == 896.0f || SCREEN_HEIGHT == 844.0f || SCREEN_HEIGHT == 926.0f || SCREEN_HEIGHT == 780.0f)
方法3:
#define TopStatuHeight [[UIApplication sharedApplication] statusBarFrame].size.height //系統底部TabBar高度 #define bTabBarHeight (TopStatuHeight>20?83:49) //系統導航欄總高度 #define bAllNavTotalHeight (TopStatuHeight>20?88:64) // 底部安全區域遠離高度 #define kBottomSafeHeight (TopStatuHeight>20?34:0)
參考鏈接:https://blog.csdn.net/smileKH/article/details/110115810