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。
注:以上新特性均通過代碼測試,內容會以專題文章的形式展示。