zl程序教程

您现在的位置是:首页 >  其它

当前栏目

Taptic Engine初探

Engine 初探
2023-09-27 14:27:55 时间

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ㄒ)/~~)


MySQL8.0(X-Engine) OnlineDDL X-Engine是阿里自研的数据库存储引擎,以插件的方式接入到MySQL生态,支持行锁,事务,MVCC等OLTP场景的核心功能。X-Engine的核心优势是低成本,高性价比,尤其适用于历史库场景,目前阿里巴巴内部的核心交易历史库(原来是Hbase),钉钉消息历史库(原来是MySQL(InnoDB)),淘宝商家的图片空间等业务均通过X-Engine解决了成本问题。同时,X-Engine也赋能
rundeck Got error 28 from storage engine 任务列表不显示任何正在运行的任务,切换到历史任务,显示Got error 28 from storage engine. 补判断为Mysql数据库问题。 最终为mysql临时空间满造成。