iOS 3D touch開(kāi)發(fā)(三) Force Properties-按壓力度
3D touch介紹
3D touch 是ios9+、iphone6s+的新功能,簡(jiǎn)單的說(shuō)3Dtouch就是用力按壓谭溉,通過(guò)3Dtouch增加了一組手勢(shì)交互方式亦鳞。
3D touch主要常見(jiàn)的使用:
1:Home Screen Quick Actions (主屏快捷行為入口)
2:peek and pop (預(yù)覽和彈出)
3: Web view peek and pop API (HTML鏈接預(yù)覽功能)
4:Force Properties (按壓力度)
前一篇文章介紹了peek and pop (預(yù)覽和彈出)和Web view peek and pop API,本文主要介紹Force Properties (按壓力度)
介紹
ios9中添加在UITouch中添加了2個(gè)屬性简珠,用于感知手指按下的力度
force : 手指按下的力度
maximumPossibleForce : 最大可能的力度
有了這兩個(gè)屬性猜揪,就可以做出更多的用戶體驗(yàn)惭墓,比如繪畫(huà)時(shí)候可以根據(jù)按下的力度去選擇筆觸的粗細(xì)等等
代碼實(shí)現(xiàn)
我寫(xiě)個(gè)簡(jiǎn)單的demo,在上一篇文章的詳細(xì)頁(yè)面中追加代碼而姐,手指按住詳細(xì)頁(yè)中的UIView時(shí)腊凶,手指在屏幕上慢慢增加力度在減少力度,可以看到view背景色的變化。
進(jìn)入詳細(xì)頁(yè)的方式: table隨便選擇一個(gè)cell钧萍,用力touch彈出預(yù)覽褐缠,再次用力touch進(jìn)入details頁(yè)
代碼:
我們修改UIVIewController的touchesMoved方法,獲取到touch對(duì)象和force风瘦,maximumPossible數(shù)據(jù)队魏,然后用這個(gè)數(shù)據(jù)重新構(gòu)造背景色。
overridefunctouchesMoved(touches:Set,withEventevent:UIEvent?){iftraitCollection.forceTouchCapability==.Available{lettouch=touches.firstNSLog("\nforce:%f,maximumPossibleForce:%ff",touch!.force,touch!.maximumPossibleForce)view.backgroundColor=UIColor(red:0.5,green:0.5,blue:(touch?.force)!/(touch?.maximumPossibleForce)!,alpha:100)}}
demo