Taptic Engine初探

简述

Taptic Engine 是苹果的触觉反馈技术,其中Taptic演变自Haptic,即触觉。

Taptic Engine目前已经应用在苹果全线设备中。它让Apple Watch震动时有手腕被人拍了一下的感觉。让MacBook触摸板有以假乱真的触感(Force Touch)。而在iPhone上,除了实现了3D Touch让屏幕多了一维交互外,还实现了虚拟Home键的反馈效果,甚至还提供了一套Taptic API供开发者实现自己的震动反馈。

何时使用触摸反馈

为了保证所有app体验的一致性,苹果总结了适合触摸反馈的场景,收录于iOS Human Interface Guidelines中,规范中将触摸反馈的使用场景分为三类:Notification、Impact和Seleciton。

Notification用来表示成功、失败或者警告的反馈,Impact用于加强用户对物理碰撞体验,Selection用于表示用户选择区域的变化。

苹果在其官方文档里反复强调了在用户确定需要反馈的时候再使用,不要因为触摸反馈帅就乱用,再加上触摸反馈只支持iPhone 7/7P,因此在设计触摸反馈时一定要考虑使用场景,不能让有触摸反馈的用户觉得干扰,也不能影响没有触摸反馈用户的体验。文档里啰啰嗦嗦了这么多苹果爸爸你倒是什么时候给电话接通加个震动提醒啊,这很符合Notification.Success的场景好吗

Taptic API

和iOS Human Interface Guidelines对应,Tapic API用三个子类UIImpactFeedbackGenerator、UISelectionFeedbackGenerator和UINotificationFeedbackGenerator来代表三种不同类型的震动。

无论是哪种震动,调用的套路基本相同:

实例化FeedbackGenerator

调用prepare方法。(非必须)手动调用prepare的好处是可以预先初始化FeedbackGenerator,这样在需要触发震动的时候可以立即响应。当然在实时性不是很强的操作上不调用prepare也没什么关系。

调用震动方法。不同类型的实例调用的方式不同,比如UIImpactFeedbackGenerator调用的是impactOccurred,而UISelectionFeedbackGenerator调用selectionChanged。

释放FeedbackGenerator。(非必须)即把FeedbackGenerator实例设为nil。

我写了个包括各种类型触摸反馈的demo,需要体验的可以戳这里。 (PS:亲测demo中的方法都不支持6s, 6s用户表示忧伤,明明我6s用户有Taptic硬件啊/(ㄒoㄒ)/~~)

本文为云栖社区原创内容,未经允许不得转载,如需转载请发送邮件至yqeditor@list.alibaba-inc.com;如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:yqgroup@service.aliyun.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本篇翻译的是触觉反馈的API文档以及相关的人机交互指南内容什么是触觉反馈呢?拥有 iPhone 7 以上的同学在滚...
    从来吃不胖阅读 9,086评论 0 51
  • 原文出处: http://www.androidchina.net/6174.html Notification在...
    木木00阅读 14,233评论 3 32
  • 1.OC里用到集合类是什么? 基本类型为:NSArray,NSSet以及NSDictionary 可变类型为:NS...
    轻皱眉头浅忧思阅读 5,193评论 0 3
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,200评论 4 61
  • 喜欢读书写字 喜欢灵魂的碰撞 喜欢平凡的小确幸 喜欢平淡的生活 爱你胜过爱任何人 以前我总有一些错觉 我他妈都不知...
    不爱读书的一天阅读 1,501评论 0 2