Taptic-Engine 微震动

体验过Apple Watch 的小伙伴肯定知道,很多操作产生微震动(短震)是一个非常好的用户体验,所以就想是否能用到手机上。答案是肯定的,而且很多优秀的APP已经拥有类似的体验。

谷歌,百度下来发现关于Taptic-Engine文档少的可怜🤕,不过还是找到一篇很好的参考博客:iOS——关于-Taptic-Engine-震动反馈

Taptic-Engine是什么?

Taptic Engine 是苹果推出的全新震动模块,目前支持Apple Watch,iPhone 6s以上的手机。

Taptic-Engine调用

  • 导入 #import <AudioToolbox/AudioToolbox.h>
  • 调用长震

    AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
    __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_2_0); (版本)

  • 调用普通短震,3D Touch 中 Peek 震动触感

    AudioServicesPlaySystemSound(1519);

  • 调用普通短震,3D Touch 按压弹出触感

    AudioServicesPlaySystemSound(1520);

  • 调用三次短震

    AudioServicesPlaySystemSound(1521);

但以上方法均未在 Apple 的 Documents 中描述。显然,这是调用了一些私有API 。

iOS10 引入了一种新的、产生触觉反馈的方式, UIImpactFeedbackGenerator:用来给用户反馈当UI元素之间发生产生影响 。Apple 对于 UIImpactFeedbackGenerato 有一篇介绍文档UIFeedbackGenerator 可以帮助你实现 haptic feedback。它的要求是:支持 Taptic Engine 机型 (iPhone 7 以及 iPhone 7 Plus).app 需要在前台运行系统 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:LightMediumHeavy

typedef NS_ENUM(NSInteger, UIImpactFeedbackStyle) {
    UIImpactFeedbackStyleLight,
    UIImpactFeedbackStyleMedium,
    UIImpactFeedbackStyleHeavy
};

总结一下,希望同样的代码能在更多的机型上实现短振,建议使用 AudioServicesPlaySystemSound(1519)。不过可能会涉及到调用私有 API。安全起见,希望使用 UIImpactFeedbackGenerator。

在这里对Taptic-Engine只做简单的使用介绍,如若想更为详细的了解,请前去文中博客地址查看。

博客地址

推荐阅读更多精彩内容

  • 最近真的是好久没有写简书了, 期间有无数次冲动想认真写一篇, 可是总挤不出整块的时间来写. 还有一个原因就是总觉得...
    Pusswzy阅读 8,638评论 12 31
  • 之前使用了十天,对Apple Watch的感受可以简单总结为:It's all about motivation....
    Howie_Serious阅读 635评论 0 2
  • 首先感谢您看,这个比较寒冷冬天的一件暖心的窝心事。 事情是这样的。 昨天,大早上同事拿来一个钱包,问我怎么办。 原...
    海上私享家阅读 56评论 1 1
  • 2017—11-03 阳光明媚,秋高气爽的周五,2017级地理科学免师一班召开了本班的第一次读书会——《读<活着>...
    晔苓阅读 29评论 0 0
  • 【本部小说属于连载小说,也是虚构的,虽说这是TFBOYS的小说,但也是可以写出好的文章。望大家可以多多支持,谢谢...
    初雪晰阅读 223评论 1 1