ios11和iphoneX的适配笔记

一、和其他机型的差异

1、statusBar的高度

其他机型:20pt
X:44pt
所以加上navigaitonbar的高度是
其他机型:64
X:88
可以用下面的代码获取statusBar的高度:

//获取tabbar的高度
[[UIApplication sharedApplication] statusBarFrame].size.height]
//获取navigaitonbar的高度
 CGRect rectOfNavigationbar = self.navigationController.navigationBar.frame;
    NSLog(@"navigationbar的高度: %f", rectOfNavigationbar.size.height);  

进行宏定义
/**
 适配iPhoneX
 */
#define KStatusBarHeight [[UIApplication sharedApplication] statusBarFrame].size.height
#define kNavBarHeight 44.0
#define kTabBarHeight ([[UIApplication sharedApplication] statusBarFrame].size.height>20?83:49)
#define kTopHeight (KStatusBarHeight + kNavBarHeight)


3、屏幕底部

因为没有了 Home 键,iPhone X 的底部是预留给系统功能的一个区域
Home Indicator:34pt
所以tabbar的高度:
其他机型:49pt
X:34+49 = 83
代码获取高度

//在tabBarController中使用(你的继承自UITabBarController的VC)
CGFloat tabBarHeight = self.tabBar.frame.size.height;
//在非tabBarController中使用
UITabBarController *tabBarVC = [[UITabBarController alloc] init];(这儿取你当前tabBarVC的实例)
CGFloat tabBarHeight = tabBarVC.tabBar.frame.size.height;
3、安全区域

参考文章:
iPhone X 适配(全)

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

推荐阅读更多精彩内容