在 iOS 9 誕生之前,其實蘋果就已經做了很多基礎建設性的鋪墊了:
于是来到了 iOS 9 的时代,新增了两个特性: Multitasking(多任务) 和 Picture-in-Picture(画中画) 。接下来就是具体介绍了 Cocoa Touch 下的新的特性。
AutoLayout:
新增 UILayoutGuide
類來實現過去需要使用不可見的 Dummy View 來作為補充對齊元素的功能。例如:
UILayoutGuide *space1 = [[UILayoutGuide alloc] init]; [self.view addLayoutGuide:space1]; UILayoutGuide *space2 = [[UILayoutGuide alloc] init]; [self.view addLayoutGuide:space2]; [space1.widthAnchor constraintEqualToAnchor:space2.widthAnchor].active = YES; [self.saveButton.trailingAnchor constraintEqualToAnchor:space1.leadingAnchor].active = YES; [self.cancelButton.leadingAnchor constraintEqualToAnchor:space1.trailingAnchor].active = YES; [self.cancelButton.trailingAnchor constraintEqualToAnchor:space2.leadingAnchor].active = YES; [self.clearButton.leadingAnchor constraintEqualToAnchor:space2.trailingAnchor].active = YES;
UIStackView
引入 UIStackView
來創建流式的佈局。
Shortcuts Bar
iPad 上輸入法預測的一行在 iOS 9 上同時提供了快捷操作。通過 UITextInputAssistantItem
來給 Shortcuts Bar 上的左右兩個圖標組( leadingBarButtonGroups
和 trailingBarButtonGroups
)來添加新的按鈕。
Storyboard
多 Storyboard 支持。
Right-to-Left
對阿拉伯語等「從右向左」閱讀的語言進行了支持。對不同的 Controller、Gesture 甚至 UIImage 都可以選擇顯示的方向。在 iOS 9 下,UIView 也增加了 UISemanticContentAttribute
這樣一個屬性來判斷視圖是否會遵循顯示的方向規則(默認是 UISemanticContentAttributeUnspecified
)。
Accessibility:吐槽一下國內的公司很少有接觸這一塊啊...
Text Editing Gestures:可以在鍵盤上利用手勢來實現對指針的移動、文本的選擇的功能。
Keyboard Commands(Cheatsheet):連接外接鍵盤的時候長按 ⌘
調出。
Touch Events:優化了觸控的延遲,並且使用了觸控預測(Touch Prediction)。
UIKit Dynamics:
API Optimizations for Swift:在 Session 106 下有詳細解釋。
Notifications:通知顯示的方式(Behavior)。
Safari:App 內可以使用 SFSafariViewController
來提供原生瀏覽器的支持。
Extension:
前面幾點感覺 SS 和 Adblock 即將走進 iOS 9 中。最後的 Audio Units 要提一下,開發者可以使用系統中不支持的視頻或者音頻播放格式了。
Contacts:新的 API,一筆帶過了。
Wallet and PassKit:為 Pay 鋪路。
Core Location:提供了單次獲得地點的 API,使用 CLLocationManager
中的 requestLocation
函數。
MapKit:提供 3D 俯視視圖,可以顯示交通情況以及指南針等功能。
HealthKit:和 watchOS 2 適配,增加了數(xing)據(sheng)類(huo)型和調用 API 接口。
ResearchKit:適配 iPad 並且提供了照片捕獲的功能。
HomeKit:
智能家電的春天就要到了!
CloudKit:更加優惠的價格和服務,Web 端的支持。
UIDocument:Open in place。
On Demand Resources:詳細在 Session 105 中。
ReplayKit
SpriteKit
SceneKit
GamePlayKit:編寫遊戲的 AI 和規則系統。
watchOS 2