iOS16 适配指南

  1. iOS 16 真机调试时需要在设备的设置 —> 隐私与安全 —> 开发者模式 中打开开发者模式。

  2. 新增 UICalendarView,可以显示日期并支持单选与多选日期。

  3. 新增 UIPasteControl 用于读取剪贴板中的内容,否则跨 App 读取时会弹出对话框让用户进行选择是否同意。

  4. 新增一个交互 UIEditMenuInteraction,用于取代 UIMenuController 与 UIMenuItem。

  5. 新增一个交互 UIFindInteraction 用于文本内容查找与替换。

  6. 新增 LARightStore 用于存储与获取 keychain 中的数据。

  7. UIImage 增加了新的构造函数用于支持 SF Symbols 最新版中增加的类别 Variable。

  8. UIPageControl 支持垂直显示并可以设置指示器与当前页的图片。

  9. UITableView 与 UICollectionView 在使用 Cell Content Configuration 时支持使用 UIHostingConfiguration 包装 SwiftUI 代码定义 Cell 的内容。

    cell.contentConfiguration = UIHostingConfiguration {
        HStack {
            Image(systemName: images[indexPath.row])
                .foregroundStyle(.teal)
    
            Text(devices[indexPath.row])
                .font(.caption)
                .foregroundStyle(.secondary)
        }
    }
    
  10. UITableView 与 UICollectionView 增加了新的selfSizingInvalidation参数,通过它 Cell 具备自动调整大小的能力。

  11. UINavigationItem 增加了一个属性style用于描述 UINavigationItem 在 UINavigationBar 上的布局;增加了一个属性backAction用于实现当前 UIViewController 的返回按钮事件;增加了一个属性titleMenuProvider用于给当前导航栏的标题添加操作菜单。

  12. UISheetPresentationController 支持自定义显示的 UIViewController 的大小。

  13. UIMenu 支持设置尺寸,分别为smallmediumlarge

    let addNewMenu = UIMenu(title: "", preferredElementSize: .small, children: menuActions)
    
  14. 隐私权限增强,如通过 UIDevice 获取设备名称时,无法获取用户的信息,只能获取设备对应的名称。

  15. UIDevice 不再支持通过setValue()方法设置设备的方向,替换为 UIWindowScene 的requestGeometryUpdate()方法。

  16. 为了支持 iOS 锁屏显示与 watchOS 表盘显示,WidgetFamily 增加了新的分类accessory

  17. UIScreen.main即将被废弃,建议使用(UIApplication.shared.connectedScenes.first as? UIWindowScene)?.screen

  18. 支持 Live Activity,可以理解为一种特殊的锁屏界面显示的 Widget。

:以上新特性均通过代码测试,内容会以专题文章的形式展示。

你可能感兴趣的:(iOS16 适配指南)