其他 iOS 10 架構變更
本文涵蓋 iOS 10 現有架構的其他次要變更或增強功能。
AV Foundation Framework 新增專案
AVFoundation 架構包含下列增強功能:
- 在 iOS 10 中,開發人員不再需要根據內容類型實作不同的 AVPlayerItem 行為。 只要設定
Rate
屬性和AVFoundation即可判斷何時有足夠的內容可供播放而不停止。 - 新的 AVCapturePhotoOutput 類別會取代已被
AVCaptureStillImageOutput
取代的類別,並提供統一方法來處理所有攝影工作流程,方法是提供複雜的擷取程式和監視擷取程式,並支援新功能,例如 Live Photos 和 RAW 擷取格式。 - 新的
AVPlayerLooper
類別可讓您更輕鬆地在播放期間迴圈指定的媒體片段。 - 類別
AVAssetDownloadURLSession
允許下載及稍後播放 FairPlay 加密的 HLS 數據流。 - 根據預設, AVCaptureSession 類別會在裝置硬體支援時,自動支援寬色彩、寬域擷取。 如需詳細資訊,請參閱Apple的 iOS裝置相容性參考 。
AVKit 新增專案
AVKit 架構現在包含新的 UpdatesNowPlayingInfoCenter
屬性,指出何時應該更新 Now Playing Info Center。
核心數據增強功能
iOS 10 包含下列核心數據架構的增強功能:
- 在 WAL 日誌模式中,具有 SQLite 資料存放區的 NSManagedObjectContext 物件支援新的查詢產生功能,其中 Managed 物件內容 (MOC) 可以釘選到特定的資料庫版本,以供日後擷取和錯誤交易。
- 根 NSManagedObjectContext 對象支援並行錯誤和擷取,而不需要串行化。
- NSPersistentStoreCoordinator 類別會維護 SQLite 資料存放區的集區。
- 已新增數個新的便利方法,
NSManagedObject
可讓您更輕鬆地執行擷取和建立子類別。 - 使用高階
NSPersistenceContainer
來參考NSPersistentStoreCoordinator
、 NSManagedObjectModel 和其他核心數據組態資源。
如需詳細資訊,請參閱Apple的核心 數據架構參考。
核心映像增強功能
iOS 10 對核心映射架構進行下列增強功能:
- 開發人員現在可以在核心影像內容的工作色彩空間外處理色彩空間中的影像,方法是在處理前後轉換色彩空間。
- 針對使用 A8 或 A9 CPU 的 iOS 裝置,現在支援 RAW 影像格式。 核心映像現在支援從內建 iSight 相機或第三方相機譯碼 RAW 影像。
FilterWithImageData
使用 CIFilter 類別的 或FilterWithImageURL
方法來處理 RAW 影像。 - 已對
UIImage
物件中的UIImageView
轉譯進行數個轉譯效能增強功能(由核心映射映像存放區支援時)。 UIImage
標記為寬域的物件將會在UIImageView
支援寬色的 iOS 裝置上,將呈現為寬域色彩的物件。- 核心映像核心程式代碼現在可以要求特定的像素輸出格式。
ImageWithExtent
CIFilter 類別的 方法可用來將自定義處理插入篩選作業中。 核心影像會在處理輸出或顯示影像時,於篩選之間叫用指定的回呼。
此外,已新增下列新的核心映射篩選:
CINinePartTiled
CINinePartStretched
CIHueSaturationValueGradient
CIEdgePreserveUpsampleFilter
CIClamp
核心動作新增專案
Core Motion 架構是 iOS 10 的新功能,包含計步器事件,可讓應用程式在執行時接收使用者暫停和繼續追蹤的快速即時通知。 使用 CMPedometer 來註冊前景或背景計步器事件。
基礎增強功能
已對 iOS 10 的 Foundation 架構進行下列增強功能:
使用新的 NSMeasurementFormatter 類別來格式化當地語系化的度量,以向用戶顯示。
使用新的 NSDateInterval 類別進行日期和時間間隔計算,例如持續時間,以比較間隔和測試間隔交集。
使用新的 NSMeasurement 類別,在不同的量值單位之間轉換,或對不同 UOM 中的值執行計算。
使用新的 NSUnit 和 NSDimension 類別來代表特定的 UOM。
NSLocal 類別已新增數個新屬性,以取得本機資訊和可用的顯示格式。
GameKit 增強功能
已對 iOS 10 中的 GameKit 架構進行下列增強功能:
- 遊戲中心應用程式已被取代,並已從iOS移除。 如果應用程式使用 GameKit,它 必須 呈現自己的介面來顯示 GameKit 功能,例如排行榜等。
- GKCloudPlayer 類別已實作新的僅限 iCloud 帳戶類型。
- 新的 GKGameSession 類別提供一般化解決方案,用於管理 Game Center 上的永續性數據儲存區。
GKGameSession
會維護玩家清單,而應用程式負責實作參與者日期儲存、擷取或交換玩家的方式和時間。 在許多情況下,遊戲會話可以取代現有的回合式比對、即時比對或永續性遊戲儲存方法。
GameKit 增強功能
iOS 10 中已對GamesKit 架構進行下列增強功能:
- 使用新的 GKMeshGraph 類別來提供高效能、自然外觀的路徑。
- 已新增程序雜訊產生,可用來增強自然外觀紋理中的現實主義、將現實主義新增至相機移動,並協助產生豐富的遊戲世界。
- 使用空間分割來分割遊戲世界數據,以有效率地搜尋。
- 新增了一位蒙特卡洛策略師(GKMonteCarloStrategist),以進行詳盡的移動計算。
- 使用新的 GKAgent3D 和 GKGraphNode3D 類別,將 3D 支援新增至現有的代理程式和尋找路徑行為。
- 新的 GKScene 和 GKSKNodeComponent 類別可讓GamesKit 和 SpriteKit 組合比以往更容易。
- 已新增判定樹 API(GKDecisionTree 和 GKDecisionNode),以增強遊戲建置 AI。
HealthKit 增強功能
已對 iOS 10 中的 HealthKit 架構進行下列增強功能:
- 已新增天氣類型(例如
HKWeatherConditionClear
和HKWeatherConditionCloudy
)和鍛煉類型(例如HKWorkoutActivityTypeFlexibility
和HKWorkoutActivityTypeWheelchairRunPace
)的新元數據索引鍵。 - 已新增類別
HKCDADocument
,以代表臨床文件架構 (CDA) 格式化的檔。 - 使用新的 HKWorkoutConfiguration 類別來指定
ActivityType
鍛煉的 和LocationType
。 - 新的 HKWheelchairUseObject 和
WheelchairUse
HKHealthStore 類別的方法已新增,用於處理輪椅相關健康數據。
HomeKit 增強功能
已對 iOS 10 中的 HomeKit 架構進行下列增強功能:
- 已新增新的服務和特性。
- iPad 可以設定為作為 HomeKit Hub,以提供遠端訪問、執行自動化觸發程式並啟用共用用戶權力。
- 相機和門鈴配件已新增支援。
- 已針對配件提供更多內容和組態。
金屬增強功能
已對 iOS 10 中的 Metal 架構進行下列增強功能:
- 3D 應用程式和遊戲現在 可以使用鑲嵌 ,透過 GPU 有效率地轉譯複雜的場景和幾何。
- 提供資源配置的精細控制,以使用資源堆積和無記憶體轉譯目標將金屬型應用程式的效能優化。
- 使用函式特製化為場景建立高度優化的材質和光線組合函式集合。
若要深入瞭解,請參閱Apple的 金屬程序設計指南。
ModelIO 增強功能
已對 iOS 10 中的 ModelIO 架構進行下列增強功能:
- 現在支援美元檔案格式。
- 已將帶正負號的距離字段支援新增至 MDLVoxelArray 類別。
- 使用新
MDLLightProbeIrradianceDataSource
類別來協助放置淺色探查。 - 使用新的
MDLMaterialPropertyGraph
類別,輕鬆地支援模型的運行時間變更。
相片增強功能
下列增強功能已對 iOS 10 中的 Photos 架構進行:
- 使用 CIImageProcessorInput 和 CIImageProcessorOutput 類別,利用新的核心映像處理器功能來執行編輯。
- 即時相片編輯現在適用於支援相片架構和相片編輯延伸模組的應用程式(適用於相片和 相機 應用程式內)。
- 使用新的 PHLivePhotoEditingContext 類別,將編輯套用至即時相片的視訊和仍然內容。
ReplayKit 增強功能
已對 iOS 10 中的 ReplayKit 架構進行下列增強功能:
- 使用 RPScreenRecorder、RPBroadcastActivityViewController 和 RPBroadcastController 類別,以支援透過第三方網站廣播錄製的媒體。
- 需要廣播UI和廣播上傳延伸模組,才能在應用程式中支援 ReplayKit 第三方廣播服務。
SceneKit 增強功能
已對 iOS 10 中的 SceneKit 架構進行下列增強功能:
- SCN 相機 類別可以使用 HDR 特性和效果來提供更大的現實主義。 使用調適型曝光來建立自動效果,或使用調色、色彩邊緣和色彩分級,將填滿效果新增至遊戲。
- SceneKit 現在包含新的實體型轉譯 (PBR) 系統,以使用更簡單的資產撰寫來取得更真實的結果。
- 使用新的 SCNLightingModelPhysicallyBased 底紋模型來產生各種不同的實際底紋效果,同時只需要三個基本屬性(
Diffuse
Metalness
和Roughness
)。 - 由於 PBR 底紋最適合以環境為基礎的光源,因此請使用
LightingEnvironment
屬性將影像型光源指派給整個場景。 IESProfileURL
使用 屬性來匯入真實世界的光源裝置,這些裝置會根據真實世界值來定義光源,例如強度(以亮度為單位)和色彩溫度(以 Kelvin 為單位)。- PBR 和 HDR 相機功能提供比傳統轉譯技術更好的結果,因此 SceneKit 現在會在線性色彩空間中執行所有色彩計算(在寬色裝置顯示器上使用 P3 色域)。
- SceneKit 現在會讀取色彩配置檔資訊,以符合所有色彩。
- SceneKit 會解譯所有著色器類型之線性 RGB 色彩空間中的色彩元件值。
- 藉由在應用程式的 中指定
SCNDisableLinearSpaceRendering
和 索引鍵,即可停用線性色彩空間轉譯和SCNDisableWideGamut
寬Info.plist
色。 - 使用新的 SCNGeometryPrimitiveTypePolygon 類別,建置任意多邊形靈長類動物(從檔案載入或以程序設計方式產生)來指定幾何。
- 由於 SceneKit 會讀取並調整紋理影像中的色彩配置檔資訊,因此請使用所有影像的資產類別目錄來確保提供這項資訊。
SpriteKit 增強功能
已對 iOS 10 中的 SpriteKit 架構進行下列增強功能:
- 自定義著色器可以提供屬性 (
SKAttribute
),這些屬性可由每個使用著色器的節點分別設定,方法是提供屬性值 (SKAttributeValue
)。 - Tilemap 現在支援使用、 和
SKTileSet
類別的 2D、2.5D 和側卷遊戲SKTileGroupRule
SKTileMapMode
SKTileGroup
的方形、六邊形和等距磚圖形。 - 使用新
SKWarpGeometry
類別來延展或扭曲 SKSpriteNode 或 SKEffectNode 轉譯。 新的 SKAction 類別可用來以動畫顯示變形效果之間的轉換。 - SKView 類別提供數個新方法,讓您更精細地控制場景的呈現時機和方式。
ScrollView 增強功能
下列增強功能已對 iOS 10.3 中的 ScrollView 控件進行:
UIScrollView
現在包含IndexDisplayMode
屬性,以控制使用者捲動時UIScrollViewIndexDisplayMode
索引的顯示方式:Automatic
- 索引顯示是由OS所控制。AlwaysHidden
- 索引顯示一律為隱藏。
UIKit 增強功能
已對 iOS 10 中的 UIKit 架構進行下列增強功能:
- 新的 UIPasteboard API提供新的選項(例如存留期限制),並會自動宣告通用類別類型的相容內容類型。
- 已新增新的完全互動式、以對象為基礎的可中斷動畫支援,並可連結至手勢。 如需詳細資訊,請參閱 Apple 的 UIViewAnimating 通訊協議參考、UIViewPropertyAnimator 類別參考、UITimingCurveProvider 通訊協定參考、UICubicTimingParameters 類別參考和 UISpringTimingParameter 類別參考。
- 新的
UIPreviewInteraction
,並允許UIPreviewInteractionDelegate
開發人員應用程式提供自定義介面來查看和快顯作業。 - 新的
UIAccessibilityCustomRotor
類別可讓應用程式提供自定義的內容特定功能,以輔助技術,例如 Voice Over。 UIAccessibilityIsAssistiveTouchRunning
使用和UIAccessibilityAssistiveTouchStatusDidChangeNotification
符號來判斷是否已啟用 AssistiveTouch。UIAccessibilityHearingDevicePairedEar
使用和UIAccessibilityHearingDevicePairedEarDidChangeNotification
符號來取得任何配對 MFi 助聽器的狀態。- 若要支援標籤中的動態類型,文字欄位和文字框會使用 類別的新
PreferredFontForTextStyle
方法UIFont
。 - 若要決定當裝置
UIContentSizeCategory
變更時,專案是否應該更新其字型,請使用AdjustsFontForContentSizeCategory
委派的UIContentSizeCategoryAdjusting
屬性。 - 類別
OpenURL
的UIApplication
方法會以異步方式呼叫,現在支援在開啟動作完成後呼叫的完成處理程式。 - 使用新的
UICloudSharingController
和UICloudSharingControllerDelegate
類別起始 CloudKit 共用並修改其屬性。 - 利用預先擷取的單元格來改善與新
UICollectionViewDataSourcePrefetching
委派的捲動體驗UICollectionViews
。 - 開發人員現在可以控制索引標籤專案徽章的外觀(例如文字和背景色彩)。
- 所有捲動檢視和捲動檢視子類別現在都支援 [重新整理控件] (例如
UICollectionView
)。
WebKit 增強功能
已對 iOS 10 中的 WebKit 架構進行下列增強功能:
- 已將查看和流行支援新增至 類別
WKWebView
。ShouldPreviewElement
使用 方法來判斷指定的 Web 檢視是否應該顯示預覽。