體驗過Apple Watch 的小伙伴肯定知道把曼,很多操作產(chǎn)生微震動(短震)是一個非常好的用戶體驗胡岔,所以就想是否能用到手機上。答案是肯定的歹袁,而且很多優(yōu)秀的APP已經(jīng)擁有類似的體驗坷衍。
谷歌,百度下來發(fā)現(xiàn)關(guān)于Taptic-Engine文檔少的可憐??条舔,不過還是找到一篇很好的參考博客:iOS——關(guān)于-Taptic-Engine-震動反饋
Taptic-Engine是什么枫耳?
Taptic Engine 是蘋果推出的全新震動模塊,目前支持Apple Watch,iPhone 6s以上的手機孟抗。
Taptic-Engine調(diào)用
-
導入 #import <AudioToolbox/AudioToolbox.h>
-
調(diào)用長震
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
__OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_2_0);
(版本) -
調(diào)用普通短震迁杨,3D Touch 中 Peek 震動觸感
AudioServicesPlaySystemSound(1519);
-
調(diào)用普通短震,3D Touch 按壓彈出觸感
AudioServicesPlaySystemSound(1520);
-
調(diào)用三次短震
AudioServicesPlaySystemSound(1521);
但以上方法均未在 Apple 的 Documents 中描述凄硼。顯然铅协,這是調(diào)用了一些私有API 。
iOS10 引入了一種新的帆喇、產(chǎn)生觸覺反饋的方式警医, UIImpactFeedbackGenerator:用來給用戶反饋當UI元素之間發(fā)生產(chǎn)生影響 。Apple 對于 UIImpactFeedbackGenerato 有一篇介紹文檔UIFeedbackGenerator 可以幫助你實現(xiàn) haptic feedback坯钦。它的要求是:支持 Taptic Engine 機型 (iPhone 7 以及 iPhone 7 Plus).app 需要在前臺運行系統(tǒng) Haptics setting 需要開啟预皇。
UIKIT_CLASS_AVAILABLE_IOS_ONLY(10_0)
if (@available(iOS 10.0, *)) {
UIImpactFeedbackGenerator *generator = [[UIImpactFeedbackGenerator alloc] initWithStyle: UIImpactFeedbackStyleHeavy];
[generator prepare];
[generator impactOccurred];
}
UIImpactFeedbackGenerator提供了三種Style:Light
、Medium
婉刀、Heavy
typedef NS_ENUM(NSInteger, UIImpactFeedbackStyle) {
UIImpactFeedbackStyleLight,
UIImpactFeedbackStyleMedium,
UIImpactFeedbackStyleHeavy
};
總結(jié)一下吟温,希望同樣的代碼能在更多的機型上實現(xiàn)短振,建議使用 AudioServicesPlaySystemSound(1519)突颊。不過可能會涉及到調(diào)用私有 API鲁豪。安全起見,希望使用 UIImpactFeedbackGenerator律秃。
在這里對
Taptic-Engine
只做簡單的使用介紹爬橡,如若想更為詳細的了解,請前去文中博客地址查看棒动。