iOS开发 - 适配iPhone X 以及 iOS 11

问题1:打开项目,发现上下各有一大块黑色区域

解决:使用launchScreen的话,勾选Use Safe Area Layout Guides 这个选项即可;使用launchImage的话,增加iPhone X的启动图1125*2436,json内容如下:

{

"extent" : "full-screen",

"idiom" : "iphone",

"subtype" : "2436h",

"filename" : "1125*2436.png",

"minimum-system-version" : "11.0",

"orientation" : "portrait",

"scale" : "3x"

}

额外:简单说一下safe layout guides ,是保证view不被其他view挡住可完整显示的UIView的一个属性,可以避开状态栏,导航栏,tabbar等一些view。

问题2:引导页距底部尺寸不对,

解决:使用了导航栏,安全区域导致上下共有88px的高度差,图片被拉伸,效果就不对了。可以在安全区域建立正常宽高比的图片,也可以制作适配iPhone X的引导页,只要UI妹妹选择原谅你。

问题3:视图距离顶部的尺寸不对,目测还是状态栏尺寸改变引起的

解决:iOS 11 automaticallyAdjustsScrollViewInsets 被ScrollerView的contentInsetAdjustmentBehavior 替换了。对于顶部是轮播图,我的做法是设置除iPhone X外为UIScrollViewContentInsetAdjustmentNever,iPhone X为UIScrollViewContentInsetAdjustmentAlways,并将导航栏颜色设置为黑色,字体白色,UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];

if ([statusBar respondsToSelector:@selector(setBackgroundColor:)]) {

statusBar.backgroundColor = [UIColor blackColor];

}

问题4:iPhone X上,隐藏了导航栏,mj_header的顶部位置不对

解决:mj对scrollview的inset的修改对于iPhone X的安全区域没有适配,要么等待大神更新版本,要么自己修改源码。

你可能感兴趣的:(iOS开发 - 适配iPhone X 以及 iOS 11)