1.iPhoneX适配宏定义:
#define iPhoneX (SCREEN_HEIGHT ==812.0f|| SCREEN_HEIGHT ==896.0f)
//顶部电池栏的高度 (iPhoneX ? 44.0 : 20.0)
#define TopStatusBarH [[UIApplication sharedApplication] statusBarFrame].size.height
//导航栏的高度 (iPhoneX ? 44.0 : 44.0)
#define NavigationBarH self.navigationController.navigationBar.frame.size.height
// (iPhoneX ? 88.0 : 64.0)
#define NavigationHeight (TopStatusBarH + NavigationBarH)
//底部分栏控制器的高度 (iPhoneX ? 83.0 : 49.0)
#define BottomTabBarH self.tabBarController.tabBar.frame.size.height
//底部安全区域高度
#define BottomSafeAreaHeight (iPhoneX ?34.0:0)
2.屏幕、字体适配宏定义:
//屏幕宽度
#define SCREEN_WIDTH [UIScreen mainScreen].bounds.size.width
//屏幕高度
#define SCREEN_HEIGHT [UIScreen mainScreen].bounds.size.height
//大小
#define SCREEN_SIZE [UIScreen mainScreen].bounds.size
//************************ 不同屏幕尺寸字体适配 **********************************************
#define kScreenWidthRatio (UIScreen.mainScreen.bounds.size.width /375.0)
#define kScreenHeightRatio (UIScreen.mainScreen.bounds.size.height /667.0)
#define AdaptedWidth(W) ceilf((W) * kScreenWidthRatio)
#define AdaptedHeight(H) ceilf((H) * kScreenHeightRatio)
#define AdaptedFontSize(R) [UIFont systemFontOfSize:AdaptedWidth(R)]
上面是宏定义,tableView是不需要适配的,底部有Button必须要用到 BottomSafeAreaHeight 这个高度进行适配 举个例子: