iPhone X的出现,颠覆了我们对于苹果手机顶部状态栏高度和底部tabbar高度的认识,我有话想说
方式一:通过判断是不是iPhone X
// 判断是否是iPhone X
#define iPhoneX ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) : NO)
// 状态栏高度
#define STATUS_BAR_HEIGHT (iPhoneX ? 44.f : 20.f)
//导航栏高度
#define NAVIGATION_BAR_HEIGHT (iPhoneX ? 88.f : 64.f)
// tabBar高度
#define TAB_BAR_HEIGHT (iPhoneX ? (49.f+34.f) : 49.f)
// home
#define HOME_INDICATOR_HEIGHT (iPhoneX ? 34.f : 0.f)
方式二:
建议以后不要判断 直接使用获取的方式得到高度
//状态栏高度(iPhone X 其他)
float stateHeight = [UIApplication sharedApplication].statusBarFrame.size.height; //44 20
//导航栏高度
float naviHeight = self.navigationController.navigationBar.bounds.size.height; //44 44
//标签控制器高度
float tabbarHeight = self.tabBarController.tabBar.bounds.size.height; //83 49
解决UITableView适应的问题
self.tableView.estimatedRowHeight = 0;
self.tableView.estimatedSectionHeaderHeight = 0;
self.tableView.estimatedSectionFooterHeight = 0;
解决安全区问题
if (@available(iOS 11.0,*)) {
make.edges.equalTo(self.view.safeAreaInsets);
}
else
{
make.edges.equalTo(self.view);
}
网友评论