一,前言
最近几天开始做iPhoneX的适配,这几天一直刷新自己的基础知识,有没太多的了解iPhoneX的适配,所以写了这篇文章,为了记录适配过程中出现的问题和解决方式.
二,设置启动图片 LaunchImage
设备 | 横竖 | 1 | 2 | 3 |
---|---|---|---|---|
iOS 5,6 | Portrait | 1x(320x480) | 2x(640x960) | Retina4(640x1136) |
iOS7+ | Portrait | 2x(640x960) | Retina4(640x1136) | |
iOS 8+ | Portrait | RetinaHD5.5(1242x2208) | RetinaHD4.7(750x1334) | |
iOS 8+ | Landscape | RetinaHD5.5(2208x1242) | ||
iOS 11+ | Portrait | iPhoneX-3x(1125x2436) | ||
iOS 11+ | Landscape | iPhoneX-3x(2436x1125) |
对应的如下图
LaunchImage.png
1,没设置好LaunchImage出现的问题
刚开始的时候LaunchImage没有添加iPhone X的两个启动视图(iPhone X Portrait iOS 11+ 和 iPhone X Scape iOS 11+),所以造成的一个问题是,运行在iPhone X上包括启动视图的屏幕上都是上下有留黑的. 反之,如果只添加iPhone X的两个启动视图运行在iPhone X以外的手机上,也会同样出现上下留黑.
2,如果项目中使用了老的LaunchImage(即不包含iPhone X)
我们可以创建一个新的LaunchImage,如下图右键,
addLaunchImage.png
三,进入项目之后
这个时候再设置相应的navigation和tabbar的高度
这个可以根据屏幕的高度来调节navigation和tabbar的高度.
可以定义一个宏来获取屏幕的高度,根据屏幕的高度来调整navigation的的高度
#define KNavigationHeight [[UIScreen mainScreen] bounds].size.height == 812 ? 88:64
这个宏定义成全局的宏,如果你的项目中是自定义的NSNavigationVontroller或者导航栏是自定义的view的话,那么直接使用约束进行调整高度,可以使用IBOutlet把NSLayoutConstraint到当前类一个私有属性
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *navigationViewHeight;
然后进行赋值
self.navigationViewHeight.constant = KNavigtionHeight;
网友评论