iPhone X适配以及iOS 11可能出现的常见崩溃(info.plist配置)
iPhone X适配
程序启动图,引导图等
安全区
下面详细介绍一下非安全区域的尺寸如下图(此图来自莫贝网,发布者mobileui,在此十分感谢)
如何适配顶部和底部
如何禁止scrollView的自动偏移64像素
设置automaticallyAdjustsScrollViewInsets=NO就可以了,iOS 11之后
if (@available(iOS11.0, *)) {
self.scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
} else {
self.automaticallyAdjustsScrollViewInsets =NO;
}
关于info.plist
关于Xib和StoryBoard适配
如果不是的话,那就有点麻烦了,我是这样来做的,将需要进行iPhone X的约束拖出来,如下图
(按住control,直接拖即可)
代码也需要进行补充,如下,此时你该多注意是否超过了下边的安全区
if (KDeviceHeight ==812) {
self.navBgViewHeightConstraints.constant =88;
self.tipLabelHeightConstraints.constant +=24;
[self updateViewConstraints];//这句加不加都不会影响效果。。。。
}
关于webView的适配
适配好导航栏,你也把webView扩充到整个屏幕,可能会发现这样的问题,webView内部的tabBar下边会露出一块内容
解决方案有两种:
plan A:要h5前端去适配iPhone X
plan B:我们将webView去缩减回原来的高度,也就是
[UIScreen mainScreen].bounds.size.height - 88 - 34
if (@available(iOS11.0, *)) {
self.webView.scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
}
另外,如果webView出现自动调整64的情况,可通过if (@available(iOS 11.0, *)) {
self.webView.scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
}
实现。