本文简单记录iPhone X适配过程中存在的一些问题,同时关注了iOS11的一些系统层面改动,可能涉及交互、视觉,目的是符合新的交互规范,界面美观友好。
我将按照一个项目的适配顺序来讲解
Safe Area
iOS11提出的概念,处于Safe Area范围内的视图保证不会被遮挡,Safe Area默认尺寸如图:
Masonry最新版本更新了对应的API,iOS11下,可以相对于safeAreaLayoutGuide...
进行约束
1 |
|
如果父视图处于Safe Area内,以上部约束为例,父视图的
mas_safeAreaLayoutGuideTop
与mas_top
属性保持一致
在iPhone 8上可能Safe Area这个概念可能比较抽象,但是在iPhone X上表现得比较明显
启动图
第一次运行你的APP会发现上下部缺了一部分,跟苹果每次发不同的尺寸手机时一样,你都要为她添加启动图,如图:
进去后
iPhone X的Launch图尺寸是1125*2436
配置代码
1 | { |
TabBar
在iPhone X下,push新的控制器进入界面,tab栏会有一个高度偏移44个单位
目前解决方案在TabbarController添加如下代码:
1 | - (void)viewDidLayoutSubviews { |
避开危险区
iPhone X在顶部多出了44个像素的圆角显示状态栏,底部多出了34个像素用于home键操作,我们应该避开他们:
底部工具栏
此处原方案是使用
safeAreaLayoutGuide
进行布局,但实际效果上来看并不理想,所以此处判断在iPhone X下固定高度,自外向内布局,为home留出操作空间
sheet弹框
取消cell,遮挡住home键
这种样式的弹框不可避免遮挡home键,可以将控件整体提高34个像素,留出home操作空间