iOS 16 真机调试时需要在设备的设置 —> 隐私与安全 —> 开发者模式 中打开开发者模式。
新增 UICalendarView,可以显示日期并支持单选与多选日期。
新增 UIPasteControl 用于读取剪贴板中的内容,否则跨 App 读取时会弹出对话框让用户进行选择是否同意。
新增一个交互 UIEditMenuInteraction,用于取代 UIMenuController 与 UIMenuItem。
新增一个交互 UIFindInteraction 用于文本内容查找与替换。
新增 LARightStore 用于存储与获取 keychain 中的数据。
UIImage 增加了新的构造函数用于支持 SF Symbols 最新版中增加的类别 Variable。
UIPageControl 支持垂直显示并可以设置指示器与当前页的图片。
-
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) } }
UITableView 与 UICollectionView 增加了新的
selfSizingInvalidation
参数,通过它 Cell 具备自动调整大小的能力。UINavigationItem 增加了一个属性
style
用于描述 UINavigationItem 在 UINavigationBar 上的布局;增加了一个属性backAction
用于实现当前 UIViewController 的返回按钮事件;增加了一个属性titleMenuProvider
用于给当前导航栏的标题添加操作菜单。UISheetPresentationController 支持自定义显示的 UIViewController 的大小。
-
UIMenu 支持设置尺寸,分别为
small
、medium
与large
。let addNewMenu = UIMenu(title: "", preferredElementSize: .small, children: menuActions)
隐私权限增强,如通过 UIDevice 获取设备名称时,无法获取用户的信息,只能获取设备对应的名称。
UIDevice 不再支持通过
setValue()
方法设置设备的方向,替换为 UIWindowScene 的requestGeometryUpdate()
方法。为了支持 iOS 锁屏显示与 watchOS 表盘显示,WidgetFamily 增加了新的分类
accessory
。UIScreen.main
即将被废弃,建议使用(UIApplication.shared.connectedScenes.first as? UIWindowScene)?.screen
。支持 Live Activity,可以理解为一种特殊的锁屏界面显示的 Widget。
注:以上新特性均通过代码测试,内容会以专题文章的形式展示。