- 安全域
- 通用安全域(iPhone6/6p/6s/6sp/7/7p/8/8p):屏幕显示区域
- iPhone X 安全域: top 44 bottom 34
-
启动图
- 使用Xcode 9在Images.xcassets中添加iPhoneX的启动图。
- 添加新的启动图1125 * 2436 (375 * 812 458ppi @3x).
-
AppIcon
- 新添加1024 * 1024 AppIcon
-
用户权限
-
iOS11之后,NSPhotoLibraryUsageDescription(访问相册,读)权限无需添加,系统自动授权。但NSPhotoLibraryAddUsageDescription(添加内容,写)仍旧需要用户授权。
-
在iOS11中,定位操作中,为了避免开发者只提供请求 Always 授权模式这种情况,要求必须支持 When In Use 授权模式(NSLocationWhenInUseUsageDescription),若不提供When In Use 授权模式,则 Always 相关授权模式也无法正常使用。iOS11之前的版本,建议在 info.plist 中配置所有的 Key(即使 NSLocationAlwaysUsageDescription 在 iOS 11及以上版本不再使用):
- NSLocationWhenInUseUsageDescription
- NSLocationAlwaysAndWhenInUseUsageDescription
- NSLocationAlwaysUsageDescription
注:NSLocationAlwaysAndWhenInUseUsageDescription 为iOS11中新引入的Key。
-
-
Tabbar
- 调整自定义Tabbar位置和高度 Tabbar区域 34 + 49 = 83
-
TableView
- iOS11调整估算行高机制,行高、footer或者header高度出现异常时,需要做特殊适配
tableView.estimatedRowHeight = 0; tableView.estimatedSectionFooterHeight = 0; tableView.estimatedSectionHeaderHeight = 0;
-
ScrollView
- ScrollView及其子类,需要适配安全域和调整automaticallyAdjustsScrollViewInsets的,iOS11中统一通过ScrollView的属性contentInsetAdjustmentBehavior来调整
if (@available(iOS 11.0, *)) { _mineTableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; } else { self.automaticallyAdjustsScrollViewInsets = NO; }
-
导航栏 & 状态栏
- iOS11之后,系统不推荐隐藏状态栏,所有需要隐藏状态栏的操作谨慎操作
- 状态栏高度,除iPhone X之外的状态栏高度 20,iPhone X状态栏高度 44
- 导航栏 的 leftButtonItem 和 rightButtonItem 在iOS11中,视图层级和位置做了修改:
即在iOS11之后,leftButtonItem右移16px,rightButtonItem左移16px
- 关于这部分的适配,可以选择换成自定义button而不使用系统 leftButtonItem 和 rightButtonItem,推荐这种方式。
- 如果一定要使用leftButtonItem 和 rightButtonItem,参考iOS11 导航栏UIBarButtonItem自定义按钮偏移问题
网友评论