一.3D Touch功能添加分為兩種(1).靜態標簽 (2).動態標簽
(1).靜態添加
這個方法是在app的plist文件中添加如下圖的鍵值對
先添加了一個UIApplicationShortcutItems的數組,這個數組中添加的元素就是對應的靜態標簽,在每個標簽中我們需要添加一些設置的鍵值:
必填項(下面兩個鍵值是必須設置的):
UIApplicationShortcutItemType? 這個鍵值設置一個快捷通道類型的字符串
UIApplicationShortcutItemTitle? 這個鍵值設置標簽的標題
選填項(下面這些鍵值不是必須設置的) :
UIApplicationShortcutItemSubtitle? 設置標簽的副標題
UIApplicationShortcutItemIconType? 設置標簽Icon類型
UIApplicationShortcutItemIconFile? 設置標簽的Icon文件
UIApplicationShortcutItemUserInfo? 設置信息字典(用于傳值)
(2).動態標簽
動態標簽是我們在程序運行過程中動態添加上去的,可以修改或者直接取消, 與之相關的類,主要有三個:
UIApplicationShortcutItem? 創建3DTouch標簽的類
UIMutableApplicationShortcutItem 創建可變的3DTouch標簽的類
UIApplicationShortcutIcon 創建標簽中圖片Icon的類
動態方法添加可以在某個條件下取消3D Touch功能,比如登陸之前取消3D Touch功能和登陸之后添加3D Touch功能,代碼中的 UIApplicationShortcutIconTypeShare 等是系統風格的icon,這里只是舉個例子直接拿來用,但是不知道審核的時候會不會被拒。
這里有幾點需要注意:
1、快捷標簽最多可以創建四個,包括靜態的和動態的,靜態標簽會一直存在。
2、每個標簽的題目和icon最多兩行,多出的會用...省略
3、我們在app的入口函數:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;
也需要進行一下判斷,在launchOptions中有 UIApplicationLaunchOptionsShortcutItemKey這樣一個鍵,通過它,我們可以區別是否是從標簽進入的app,如果是則處理結束邏輯后,返回NO,防止處理邏輯被反復回調。
二.響應標簽的行為
當我們點擊標簽進入應用程序時,也可以進行一些操作,我們可以看到,在applocation中增加了這樣一個方法:
- (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void(^)(BOOL succeeded))completionHandler NS_AVAILABLE_IOS(9_0); (要注意上面的第三點)
當我們通過標簽進入app時,就會在appdelegate中調用這樣一個回調,我們可以獲取shortcutItem的信息進行相關邏輯操作
三. 3D Touch ViewController? 彈出自定義的ViewContoller,向上滑動還有下一步的菜單可以顯示
首先在viewController的.m方法中添加下面代碼,判斷當前設備是否支持壓力感,并注冊delegate
//注冊3D Touch,先判斷是否可用
if (self.traitCollection.forceTouchCapability == UIForceTouchCapabilityAvailable){
[self registerForPreviewingWithDelegate:self sourceView:self.view];
NSLog(@"3D Touch? 可用!");
}else{
NSLog(@"3D Touch 無效");
}
UIApplicationShortcutItemIconType觸發3D Touch時顯示的圖標類型
UIApplicationShortcutIconTypeShare顯示分享的圖標
當然肯定還可以選擇其他的一些圖標,在此不一一列舉,因為我也才上手,不怕您笑話咱。
UIApplicationShortcutItemTitle顯示名字的
UIApplicationShortcutItemType相當于項目中的Bundle Identifier唯一的,通過這個標示我們可以判斷點相應的那一項觸發相應的操作
3DTouch目前在手機上有兩種體現方式,一種是用力按下app的圖片icon,會彈出選項菜單,就像電腦上的右鍵。一種是在應用內的界面上用力按下,彈出的預覽界面
在iOS 9中,新iPhone將第三維度添加到了用戶界面。
用戶現在可以用力摁下主屏按鈕來快速調出應用提供的功能菜單。
在應用中,用戶現在可以用力摁下視圖以查看更多內容的預覽并且快速訪問一些功能。
參考
1.iOS 9 新特性之實現 3D Touch 就是 So easy -- OC版