最近苹果发布了 iOS 11 也发布了 iPhone 8 ,iPhone 8 Plus,iPhone X ,8和8 Plus 只是 7的升级版,对于广大的开发者而言 ,没有什么需要注意的, 主要的 iPhone X 给我们带来了麻烦, 最主要的导航栏的变化,给我们带来了麻烦.
第一点: 就是升级了iOS7之前的 创建的 xib 都不能用了, 都需要重写
第二点 :也是最主要的变化 导航栏和工具栏的变化,之前的项目直接拿到 Xcode 9 上面来跑起来就会出现这样的效果, (我的这个是自定义的导航栏 就是一个 View)
显然是不对的. 如果你的导航栏是系统的会出现这种
那么我们应该怎么办呢
解决办法
第一步, 我们应该想到的是, 不同屏幕的尺寸, 是需要不同尺寸的启动图的那么我们就应该在 <<LaunchImage>>里面加上 iPhone X 对应尺寸的启动图 大小为
1125*2436 如图
加上过后 就会正常了 其实也不太正常
自定义的导航栏 的 Title 会离上面太挤了,之前的手机导航栏都是64, iPhone X 上的导航栏 就84 了 所以就会太挤了,那么处理方法就是要判断下当前的 设备是什么设备 如果是iPhone X 就需要多加20. 那么对应的下面的空间也要向下移动20,每个页面都需要这么做, 真的很烦哦.
如果你是用的系统导航栏 就不需要设置了, 直接距离上面0就可以了!
改完之后的效果
关于怎么判断否是iPhone X 呢目前我的方法是
[UIScreen mainScreen].bounds.size.height >736 为 X. 即
-(NSInteger)topHeight{
return ScreenHeight > 736 ? 84 : 64;
}