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用三个子类 UIImpactFeedbackGeneratorUISelectionFeedbackGeneratorUINotificationFeedbackGenerator 来代表三种不同类型的震动。
无论是哪种震动,调用的套路基本相同:

  1. 实例化FeedbackGenerator
  2. 调用prepare方法。(非必须)手动调用prepare的好处是可以预先初始化FeedbackGenerator,这样在需要触发震动的时候可以立即响应。当然在实时性不是很强的操作上不调用prepare也没什么关系。
  3. 调用震动方法。不同类型的实例调用的方式不同,比如UIImpactFeedbackGenerator调用的是impactOccurred,而UISelectionFeedbackGenerator调用selectionChanged。
  4. 释放FeedbackGenerator。(非必须)即把FeedbackGenerator实例设为nil。

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

目录
相关文章
|
4月前
|
编译器 API UED
Galacean Engine 1.3 发布
经历了三个月的研发,我们激动地向您介绍全新的 Galacean Engine 1.3 版本 🎉 此次更新不仅包含后处理、Prefab、动画状态机、高级材质等多项新功能,更在稳定性、性能和用户体验上进行了一大波优化。我们还在编辑器中内置了大量的案例模板,方便用户快速学习和预览功能效果。此外,Galacean Engine 官网设计也进行了全面更新,为您带来更棒的浏览体验!
|
8月前
|
Web App开发 存储 Android开发
update_engine简介
update_engine简介
106 5
|
8月前
|
存储 关系型数据库 OLTP
X-Engine
阿里云数据库产品事业部自主研发的OLTP数据库存储引擎X-Engine,已经成功应用在阿里集团内部的核心业务系统,包括交易历史库、钉钉历史库等,不仅大幅降低了业务成本,同时作为双十一大促的关键数据库技术,成功承受了数百倍平时流量的冲击。
84 2
|
关系型数据库 MySQL 开发者
MySQL 字段约束 null, not null, default, auto_increment
前言:转载,觉得有用就发了一遍 在 MySQL 中,每个字段定义都包含附加约束或者修饰符,这些可以用来增加对所输入数据的约束。 今天我们就来看一下 MySQL 的字段约束: NULL 和 NOT NULL 修饰符、DEFAULT 修饰符,AUTO_INCREMENT 修饰符。
206 0
|
SQL 关系型数据库 MySQL
MySQL:ERROR 1286 (42000): Unknown storage engine 'MyISAM'
MySQL:ERROR 1286 (42000): Unknown storage engine 'MyISAM'
150 0
|
关系型数据库 MySQL Shell
MySQL报错:Got error 28 from storage engine
MySQL报错:Got error 28 from storage engine
107 0
|
存储 算法 关系型数据库
【MySQL】default-storage-engine=MyIsam,是干什么的?底层原理是什么?
【MySQL】default-storage-engine=MyIsam,是干什么的?底层原理是什么?
694 0
|
SQL 关系型数据库 MySQL
MySQL中ENGINE=InnoDB、AUTO_INCREMENT的意思
MySQL中ENGINE=InnoDB、AUTO_INCREMENT的意思
|
MySQL 关系型数据库 PHP
mysql的auto_increment详解
转载http://blog.csdn.net/fwkjdaghappy1/article/details/7663331 auto_increment的基本特性 MySQL的中AUTO_INCREMENT类型的属性用于为一个表中记录自动生成ID功能,可在一定程度上代替Oracle,PostgreSQL等数据库中的sequence。
1693 0
|
SQL 存储 Oracle
MySQL8.0(X-Engine) OnlineDDL
概述 X-Engine是阿里自研的数据库存储引擎,以插件的方式接入到MySQL生态,支持行锁,事务,MVCC等OLTP场景的核心功能。X-Engine的核心优势是低成本,高性价比,尤其适用于历史库场景,目前阿里巴巴内部的核心交易历史库(原来是Hbase),钉钉消息历史库(原来是MySQL(InnoDB)),淘宝商家的图片空间等业务均通过X-Engine解决了成本问题。同时,X-Engine也赋能
576 0