1.什么是3D Touch?
3D Touch屬于一種人機(jī)交互的一種方式锈遥,具體點(diǎn)用戶與手機(jī)屏幕的一種交互方式甜攀。在3D Touch出現(xiàn)前看看現(xiàn)有的一些用戶與手機(jī)屏幕的交互方式有哪些饼记?
現(xiàn)有的交互方式:點(diǎn)按新荤,雙擊,長(zhǎng)按小作,捏合亭姥,旋轉(zhuǎn),拖動(dòng)顾稀,輕掃达罗,快速滑動(dòng)
官方介紹:iOS Human Interface GuidelinesBeta Gesture
總結(jié)以上的交互都是在一個(gè)二維的界面上根據(jù)接觸的區(qū)域、時(shí)間静秆、速度粮揉、方向,次數(shù)等維度抚笔,計(jì)算得出一種用戶的手勢(shì)操作
3D Touch是從一個(gè)新的維度出創(chuàng)建一種交互方式
3D Touch是觸摸屏的壓力感應(yīng)功能扶认。是在二維的Multi-Touch觸摸屏基礎(chǔ)上添加了可以對(duì)用戶按壓屏幕的力度大小作出響應(yīng)于反饋的功能。3D Touch不是Apple的一個(gè)使用壓力感應(yīng)的產(chǎn)品殊橙,之前已經(jīng)在MacBook和Apple Watch上使用辐宾,不過(guò)之前的叫Force Touch.Force Touch是3D Touch的雛形。他只可以區(qū)分輕觸和重壓膨蛮。
官方介紹:iOS Human Interface GuidelinesBeta 3D Touch
這里提及一下Android平臺(tái)上的壓力感應(yīng)功能叠纹。華為 128GB Mate S支持Force Touch技術(shù),這是Force Touch 第一次應(yīng)用在手機(jī)(比蘋(píng)果還早鸽疾,蘋(píng)果之前使用在了電腦上)吊洼。Synaptics(新思國(guó)際)提供完整的解決方案Clear Force。
2.3D Touch應(yīng)用場(chǎng)景分析
應(yīng)用外的快速導(dǎo)航
在桌面時(shí)制肮,用力按app icon冒窍,會(huì)彈出一個(gè)快速導(dǎo)航的列表,點(diǎn)擊相應(yīng)的選項(xiàng)會(huì)進(jìn)入相應(yīng)的頁(yè)面
應(yīng)用內(nèi)的預(yù)覽于選擇
某音樂(lè)類(lèi)APP 首頁(yè)點(diǎn)擊一個(gè)歌單豺鼻,會(huì)有這個(gè)歌單的預(yù)覽于一些操作
3.3D Touch Demo
以上講的都是一些感念于效果表現(xiàn)综液,現(xiàn)在是代碼層面的分析。主要是以下四種情況:
Home Screen Quick Actions? (應(yīng)用外的快速導(dǎo)航)
Static quick actions靜態(tài)標(biāo)簽
Static quick actions are available to the userimmediately upon app installation. Define Home screen static quick actions in your app’sInfo.plistfile in theUIApplicationShortcutItemsarray.
就是在info.plist的文件中添加UIApplicationShortcutItems數(shù)組就可以使用了儒飒,具體數(shù)組里面的配置下面會(huì)有說(shuō)明谬莹,還有一點(diǎn)需要強(qiáng)調(diào)的是,使用靜態(tài)標(biāo)簽是程序安裝以后就可以立即使用了桩了。
UIApplicationShortcutItemType(required) 這個(gè)鍵值設(shè)置一個(gè)快捷通道類(lèi)型的字符串
UIApplicationShortcutItemTitle(required) 這個(gè)鍵值設(shè)置標(biāo)簽的標(biāo)題
UIApplicationShortcutItemSubtitle 設(shè)置標(biāo)簽的副標(biāo)題
UIApplicationShortcutItemIconType 設(shè)置標(biāo)簽Icon類(lèi)型
UIApplicationShortcutItemIconFile設(shè)置標(biāo)簽的Icon文件
UIApplicationShortcutItemUserInfo 設(shè)置信息字典(用于傳值)
Dynamic quick actions動(dòng)態(tài)標(biāo)簽
Dynamic quick actions are available to the userafter first launch. Define Home screen dynamic quick actions with theUIApplicationShortcutItem,UIMutableApplicationShortcutItem, andUIApplicationShortcutIconclasses. Add dynamic quick actions to your app’s shared UIApplication object using theshortcutItemsproperty.
動(dòng)態(tài)標(biāo)簽是在程序初始化之后附帽,才可以去配置的,UIApplicationShortcutItem, UIMutableApplicationShortcutItem, and UIApplicationShortcutIcon classes這3個(gè)類(lèi)創(chuàng)建一個(gè)標(biāo)簽井誉,UIApplication的shortcutItems管理整個(gè)app的標(biāo)簽蕉扮。
動(dòng)態(tài)標(biāo)簽需要注意的兩點(diǎn):1.動(dòng)態(tài)的標(biāo)簽修改不了已有的靜態(tài)標(biāo)簽2.動(dòng)態(tài)標(biāo)簽初始化一次以后會(huì)保留在shortcutItems不需要每次都創(chuàng)建
Home Screen Quick Actions?的樣式
圖標(biāo)在那邊展示是系統(tǒng)根據(jù)當(dāng)前app icon的位置決定的颗圣,會(huì)自動(dòng)調(diào)整喳钟,圖標(biāo)只能使用系統(tǒng)的圖片或者是打包在bundle中的圖片屁使。
Home Screen Quick Actions?的響應(yīng)方法
類(lèi)似推送,當(dāng)我們點(diǎn)擊標(biāo)簽進(jìn)入應(yīng)用程序時(shí)奔则,也可以進(jìn)行一些操作蛮寂,我們可以在AppDelegate中增加了這樣一個(gè)方法,在方法中可以做一些頁(yè)面跳轉(zhuǎn)等需求:
- (void)application:(UIApplication*)application performActionForShortcutItem:(UIApplicationShortcutItem*)shortcutItem completionHandler:(void(^)(BOOL))completionHandler;
UIKit Peek and Pop
To supportpeek and popon 3D Touch-capable devices, the iOS 9 SDK includes:
New methods in theUIViewControllerclass forregisteringandunregisteringa view controller for participation in 3D Touch
New view controller protocols (UIViewControllerPreviewingDelegate) to support 3D Touch
To supportpeek quick actions, the iOS 9 SDK includes:
The newUIPreviewActionandUIPreviewActionGroupclasses
The newUIPreviewActionItemprotocol
增加了一個(gè)protocol UIViewControllerPreviewingDelegate
在UIViewController類(lèi)中增加了注冊(cè)和取消注冊(cè)的Delegate的方法
具體看代碼demo
Web View Peek and Pop
導(dǎo)入WebKit的文件酬蹋,
創(chuàng)建一個(gè)WKWebView對(duì)象,設(shè)置allowsLinkPreview=true
WKWebView和SFSafariViewController#importWKWebView *webView =
[[WKWebView alloc]initWithFrame:self.view.bounds];
[self.view addSubview:webView];
[webView loadRequest:
[NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://www.baidu.com/"]]];
// 需要設(shè)置為true才有預(yù)覽的功能
webView.allowsLinkPreview = true;
safari瀏覽器
Force Properties in UITouch Objects
3D Touch在UITouch類(lèi)中增加了兩個(gè)屬性force?和maximumPossibleForce
The force of the touch, where a value of 1.0 represents the force of an average touch (predetermined by the system, not user-specific). (read-only)
Force反應(yīng)當(dāng)前壓力的大小抽莱,1.0標(biāo)示平均值除嘹。如果使用 Apple Pencil時(shí),還需要計(jì)算altitudeAngle
The maximum possible force for a touch. (read-only)
maximumPossibleForce是Force的最大值
如果你監(jiān)控touchesBegan岸蜗,touchesMoved,touchesEnded這3個(gè)放回就可以拿到UITouch叠蝇,從而回到到這兩個(gè)屬性值璃岳。
自己寫(xiě)的demo,文中的展示的程序也使用了apple文檔中的程序悔捶,以下的鏈接中找到铃慷。
寫(xiě)這篇文章時(shí)引用的資料鏈接
2015年蘋(píng)果秋季新品發(fā)布會(huì)(中文翻譯)
一張圖讓你了解3D Touch與Force Touch區(qū)別
3D Touch開(kāi)發(fā)初體驗(yàn)(模擬器使用3DTouch)