iPhoneX和其他

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);
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容