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。