iOS9 3DTouch開發

在iOS 9中,新iPhone將第三維度添加到了用戶界面。html

  • 用戶如今能夠用力摁下主屏按鈕來快速調出應用提供的功能菜單。ios

  • 在應用中,用戶如今能夠用力摁下視圖以查看更多內容的預覽而且快速訪問一些功能。web

想查閱示例代碼的話,能夠下載下面的Xcode工程:數組

在你開始使用前,請閱讀 iOS Human Interface Guidelines 中 3D Touch 一節動畫

主屏幕快速選項ui

用戶早已習慣了點擊一個應用按鈕來打開它,或者長按任何應用來編輯主屏。如今,經過按壓iPhone 6s或者iPhone 6s Plus上的應用icon,用戶可得到一系列的 快捷選項。用戶選擇一個快捷選項後,將會啓動或者加載應用,而且應用的 delegate 對象會接收快速選項的消息。代理

 

maps_directions_home_2x.png

最棒的快速選項可預料並加速用戶與應用的交互。iOS 9 SDK提供了定義靜態或者動態快速選項的API,不過僅適用於使用最新iPhone機型的用戶。

兩種快速選項最多能夠顯示兩行文本和一個可選的圖標。

Peek和Pop
如今你能夠受權應用的視圖控制器來響應用戶不一樣的按壓力量。隨着用戶按壓力量的增長,交互會出現三個階段:  

1. 暗示內容預覽是可以使用的  

2. 展現預覽(peek),和快捷選項菜單(peek quick actions)

3. 可選的跳轉到預覽中的視圖(pop)

當你使用 peek 和 pop 時,系統經過壓力決定從哪一個階段過分至下一個。用戶能夠在設置>通用>輔助功能>3D Touch中進行修改。

暗示peek是可以使用的

輕按後,周圍內容會變得模糊,這告訴用戶預覽更多內容( peek )是可使用的。

02.png

Peek
輕按,屏幕視圖就會過渡到 peek,一個你設置的用來展現更多內容的視圖-就像Mail app作的同樣。若是用戶這時結束了觸碰,peek就會消失而且應用回到交互開始以前的狀態。

或者這個時候,用戶能夠在peek界面上更用力按下來跳轉到使用peek呈現的視圖,這個過渡動畫會使用系統提供的pop過渡。pop出來的視圖會填滿你應用的根視圖並顯示一個返航按鈕能夠回到交互開始的地方。(圖中沒有顯示最後展現pop視圖的階段)

peek_2x.png

Peek快速選項
若是用戶一直保持觸摸,能夠向上滑動Peek視圖,系統會展現出你預先設置和peek關聯的peek快速選項。
每一項peek快速選項都是你應用中的深度連接。當peek快速選項出現後,用戶能夠中止觸摸並且peek會停留在屏幕中。用戶可點擊一個快速選項,喚出相關連接。

peek_quick_actions_2x.png

你一樣也能夠在網頁視圖中開啓peek和pop,請參看 Web View Peek and Pop 

壓力屬性

在iOS 9中,UITouch類新增兩個全新的屬性以支持你在應用中自定義3D Touch: force 和 maximumPossibleForce 。這是第一次應用在iOS設備上,這些屬性可讓你偵測並響應APP接收的IEvent對象中的觸摸壓力。

觸控壓力感應有很大的動態範圍,對於你的應用來講它是個浮點值。

3D Touch的輔助功能和人機界面指

爲了確保你的用戶可以完整使用你app的功能,請根據3D Touch是否可用來分別規劃你的代碼。請參看 Checking for 3D Touch Availability 

注意:3D Touch僅適用於支持3D Touch的設備上。在iOS 9中,默認3D Touch可使用。用戶可經過Settings > General > Accessibility > 3D Touch關閉該功能。

當3D Touch可用時,儘量利用它的能力。當它不能使用時候,提供可供替代的方案好比觸摸和長按。

3D Touch支持VoiceOver,想了解關於VoiceOver的內容,請查閱 Accessibility Programming Guide for iOS

想得到更多關於3D Touch的重要指南,請查閱 iOS Human Interface Guidelines 中的 3D Touch 一節。

開發環境

Xcode7支持3D Touch開發。全部Xcode的調試功能對3D Touch的新功能都是可以使用的。

注意下列事項:

  • 在Xcode 7.0中,你必須在真機上調試來開發3D Touch。Xcode 7.0的模擬器不支持3D Touch。

  • 在Xcode 7.0中,你必須經過代碼實現peek和pop視圖控制器。Xcode7.0中的Interface Builder不提供圖形支持以設置3D Touch的視圖控制器轉場。

請在3D Touch可以使用和不可用兩種狀況下都測試你的應用,保證全部用戶都能使用所有的功能。在一臺支持3D Touch的設備上,你能夠在設置>通用>輔助功能>3D Touch中關閉3D Touch。


3D Touch APIs

iOS 9提供了以下3D Touch APIs:

  • Home Screen quick action API,使你能夠給應用圖標添加快速選項,從而讓應用預料和加速其與APP的交互。

  • UIKit peek and pop API,可以讓你在應用中爲用戶提供快速訪問更多內容的功能,而無需離開當前上下文環境。使用peek quick actions的API提供的按壓功能來替換你應用的觸摸長按操做。

  • Web view peek and pop API,讓你使用系統提供的HTML連接預覽功能。

  • UITouch force properties,讓你在應用增長自定義的基於壓力的用戶交互。

無論你使用以上哪些APIs,你的應用必須在運行時檢測3D Touch的可用性。

檢測3D Touch的可用性

爲了在運行時檢測設別是否支持3D Touch,讀取那些擁有環境特徵(a trait environment,見 UITraitEnvironment]Protocol Reference)的對象的特徵集合(trait collection)的 forceTouchCapability 屬性值。因爲用戶在應用運行時能夠關閉3D Touch,因此在你實現的 traitCollectionDidChange: 代理方法中把讀取這個屬性的值做爲其一部分。

爲了確保你的用戶可以完整使用你app的功能,請根據3D Touch是否可用來分別規劃你的代碼。當3D Touch可用時,儘量利用它的功能。當不能使用時,提供可供替代的方案,好比由UILongPressGestureRecognizer類實現的觸摸和長按。

請參閱 iOS Human Interface Guidelines 來提升你對提高應用交互的理解,保證爲那些使用3D Touch設備的用戶帶來便利的同時,也不會怠慢其餘用戶。

主屏快速選項

iOS 9支持主屏靜態和動態快速選項。

在iOS 9中,一個應用最多能展現四個主屏快速選項。在這個限制下,系統首先展現靜態快速選項,以plist菜單中的第一個爲首。若是你的靜態選項不夠四個,而且你也定義了動態快速選項,那麼會展現一個或多個動態快速選項。

兩種快速選項均可以顯示最多兩行文本和一個可選的圖標。系統會格式化文本,排列包裝它,而且適當的添加省略號。

主屏快速選項支持VoiceOver。

有關實現主屏快速選項的詳細內容,查閱如下資料:

UIKit中的Peek 和 Pop

iOS 9讓你能夠經過配置視圖控制器來提供peek和pop。

爲了在3D Touch設備上支持peek和pop,iOS 9 SDK包括:

  • UIViewController類中增長了一系列用來註冊和註銷一個參與3D Touch的視圖控制器的新方法。

  • 爲了支持3D Touch的新視圖控制器協議。

你能夠有選擇的配置一個包括一系列peek快速選項的預覽視圖控制器。用戶能夠經過在peek界面上滑來使用peek快速選項.

爲了支持peek快速選項,iOS 9 SDK包括了:

有關實現peek和pop和實現peek快速選項的更多資料,查閱如下資料:

Web View的Peek和Pop

在web視圖中,你能夠對超連接和偵測到的數據使用全新的 allowsLinkPreview 屬性來開啓peek和pop。在iOS9中,這個屬性在更被推薦使用的WKWebView類(屬於WebKit framework)和較老的UIWebVIew類(屬於UIKit framework)中都是可使用的。

Peek和Pop會經過Safari Services framewrok中的SFSafariViewController類自動偵測連接和數據

UITouch對象中的壓力屬性

在iOS 9中,UITouch類得到了兩個全新的屬性幫助你在應用中自定義3D Touch: force 和maximumPossibleForce

這些屬性可讓你偵測並響應APP接收的IEvent對象中的觸摸壓力。
在iPhone上,觸控壓力感應有很大的動態範圍,對於你的應用來講它是個浮點值。
有關更多自定義使用壓力值對3D Touch的實現,請閱讀如下資料:

相關文章
相關標籤/搜索