iOS16 适配指南(基于Xcode 14 Beta2)
-
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) } }
-
UINavigationItem 增加了一个属性
style
用于描述 UINavigationItem 在 UINavigationBar 上的布局;增加了一个属性backAction
用于实现当前 UIViewController 的返回按钮事件;增加了一个属性titleMenuProvider
用于给当前导航栏的标题添加操作菜单。 -
UISheetPresentationController 支持自定义显示的 UIViewController 的大小。
-
UIMenu 支持设置尺寸,分别为
small
、medium
与large
。let addNewMenu = UIMenu(title: "", preferredElementSize: .small, children: menuActions)
-
为了支持 iOS 锁屏显示与 watchOS 表盘显示,WidgetFamily 增加了新的分类
accessory
。 -
隐私权限增强,如通过 UIDevice 获取设备名称时,无法获取用户的信息,只能获取设备对应的名称。
-
UIScreen.main
即将被废弃,建议使用(UIApplication.shared.connectedScenes.first as? UIWindowScene)?.screen
。
注:以上新特性均通过代码测试。