1、IOS的3DTouch功能已經(jīng)在 IOS9.0版本的時(shí)候,在iPhone 6S 出來(lái)的時(shí)候就已經(jīng)支持了。其實(shí)使用接入3DTouch 很簡(jiǎn)單。
2、首先我們了解一下 3Dtouch 分為兩種。
①、桌面上的APP圖標(biāo)使用 3DTouch
②、APP 的內(nèi)部的功能也可以使用3DTouch
3、那么我們先來(lái)聊一下桌面 圖標(biāo)點(diǎn)擊 3DTouch 。 首先大家應(yīng)該都可以看到,每個(gè)APP都可以 3DTouch 點(diǎn)擊出來(lái)的分享的彈框。其實(shí)這個(gè)是蘋(píng)果給我們每個(gè)APP 已經(jīng)添加上的。不需要我們自己主動(dòng)的添加分享。然后 我們?cè)撊绾稳ザx自己想要的其他的功能呢?添加的方式有兩個(gè)中,一個(gè)中是在 info.plist 文件中進(jìn)行添加固定的功能按鈕【這里不做解釋】,也可以直接代碼添加。很簡(jiǎn)單只需要兩步。①、創(chuàng)建item ②、實(shí)現(xiàn)點(diǎn)擊后的方法 。
直接來(lái)代碼:

這樣的話(huà)可以自定義添加??梢愿鶕?jù)不同的情況去添加 不同的按鈕和功能。首先我們要注意的幾點(diǎn)。其一:必須是 IOS9.0 以及更高的版本。在上圖中 需要我們自己定義一個(gè) type 和 一個(gè) title。 title 很明顯也就是 Touch 之后 顯示的title。type 則是 我們自己任意定義的,在回調(diào)的時(shí)候 我們根據(jù) 這個(gè) type 是實(shí)現(xiàn)不同的操作。

在 AppDelegate 中 這個(gè)方法中, 可以根據(jù) shortcutItem 中 type 去對(duì)應(yīng)實(shí)現(xiàn)自己需要實(shí)現(xiàn)的操作。怎么樣?很簡(jiǎn)單吧。
4、然后 我們來(lái)說(shuō)一下 APP 內(nèi)容 通過(guò)3D Touch 去實(shí)現(xiàn)功能。其實(shí)也很簡(jiǎn)單。
①、對(duì)需要添加的 view 注冊(cè) 3DTouch 。代碼如下

然后 添加代理。<UIViewControllerPreviewingDelegate> ,實(shí)現(xiàn)方法。

兩個(gè)代理方法,第一個(gè) - (void)previewingContext:(id <UIViewControllerPreviewing>)previewingContext commitViewController:(UIViewController *)viewControllerToCommit NS_AVAILABLE_IOS(9_0) 是在 touch 進(jìn)入另一個(gè) Controller 的跳轉(zhuǎn)。 第二個(gè) -(UIViewController *)previewingContext:(id<UIViewControllerPreviewing>)previewingContext viewControllerForLocation:(CGPoint)location。 則是去設(shè)置 Touch 顯示的 Controller 。