美文网首页
iOS 11 和 iPhone X 适配

iOS 11 和 iPhone X 适配

作者: 小米锅巴 | 来源:发表于2017-10-11 10:34 被阅读191次
  • 安全域
    • 通用安全域(iPhone6/6p/6s/6sp/7/7p/8/8p):屏幕显示区域
    • iPhone X 安全域: top 44 bottom 34
SafeArea.png ui_design_guideline.jpg
  • 启动图

    • 使用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中,视图层级和位置做了修改:
3.png 4.png

即在iOS11之后,leftButtonItem右移16px,rightButtonItem左移16px

相关文章

网友评论

      本文标题:iOS 11 和 iPhone X 适配

      本文链接:https://www.haomeiwen.com/subject/tnwiyxtx.html