2017年1月24日 星期二

[學習筆記] Touch 3D介紹

這篇文章是看完線上讀書會的3D Touch教學後寫下來的筆記,
原始的讀書會影片可以從Youtube上進行觀看。


Touch 3D是iOS 9以上,需要6S以上的機型才有支援的硬體新功能

主要功能有:

  • Quick Actions - 主畫面重壓app圖示彈出選單
  • Peek and Pop - 預覽及彈出新的視窗
  • Pressure Sensitivity - 壓力感應

Quick Action

Quick Action可以用 info.plist的方式建立,但是不建議,因為:

  1. 寫在info.plist不好寫 -> 要一個一個key
  2. 不能用code動態更新內容

用Code的方式要在app裡加入Quick Action很簡單,只要在appDelegate裡的程式進入點中,替UIApplication.shared.shortcutItems這個array加入新的shortcut選項功能:

UIApplication.shared.shortcutItems = 
[
    UIApplicationShortcutItem(
        type:”mic”,
        localizedTitle:”麥克風”,
        localizedSubtitle:”這是測試”,
        icon:UIApplicationShortcutIcon(type:.audio),
        userInfo:[“swift讀書會”:20161201]
    ),
    UIApplicationShortcutItem(
        type:”love”,
        localizedTitle:”平等對待”,
        localizedSubtitle:”改變歧視現實”,
        icon:UIApplicationShortcutIcon(type:.love),
        userInfo:[“世界人權日”:20161210]
    )
]

上面的範例會在app用力點擊時,生成一筆Title為麥克風平等對待二筆資料清單,變數type可以供開發者進行使用者點擊的判斷,icon用來顯示的icon名稱,iOS 9.1 以後內建的icon比較多(Icon樣式可以參考這裡),userInfo則是可以加入額外的參數。Quick Action有一些功能上的限制就是只能顯示四組,但可以建立無限多組。
從選單點選時程式的進入點會在:

func application(_ application:UIApplication, performActionFor shortcutItem: UIApplicationShortcutItem, completionHandler:@escaping (Bool)->Void)

如果app沒有開啟,可以在didfinihsLaunching裡從

launchOptions?[UIAppliationLaunchOptionKey.shortcutItem] as? UIAppliationLaunchOptionKey

抓取key值判判是從那一個地方進來的

Peek and Pop

Peek可以讓使用者進行預覽的動作,Pop是使用者在peek預覽時再用力按下就會讓畫面直接跳到預覽的頁面,使用方式要先在所在頁面裡加入UIViewControllerPreviewingDelegate的protocol,同時實作二個func:

//peek
func previewingContext(_ previewingContext: UIViewControllerPreviewing, viewControllerForLocation location:CGPoint) -> UIViewController?{
    let index = previewingContext.sourceView.tag - 1000
    let vc = webVC()   
    return vc
}

//pop
func previewingContext(_ previewingContext: UIViewControllerPreviewing, commit viewControllerToCommit: UIViewController){
    nav.pushViewController(viewControllerToCommit, animated: true)

}

想在Peek往上滑動時加入選單,可以在Viewcontroller裡加入previewActionItems,這部分我沒有特別去實作,因為目前還沒有需要去實作這樣的功能。

結論

Touch 3D的實作上還滿容易的,我看完整個讀書會的影片後就可以把Touch 3D基本的Quick Action及Peek、POP的功能加入到現有在開發的app中,這個預覽的功能其實還滿方便的,Touch 3D好像也可以運用在推播的功能上,不過影片好像沒有特別介紹,未來可以再花點時間研究看看。

沒有留言:

張貼留言