震动通过人的触觉来增强与屏幕界面交互的体验。比如说,在使用 Apple Pay 进行支付的时候,系统就会振动设备提供触觉反馈,作为视觉和听觉反馈的补充。对于触控手势、在选择器中滚动、拨动开关这样的操作,触觉反馈也能起到增强体验的作用。更多开发者指南,查看 Animation and Haptics

在支持的 iPhone 机型上,你可以通过如下方式为你的应用添加触觉反馈。

  • 使用标准化界面元素,如开关、滑块、和选择器等。这些控件正常情况下会提供 Apple 设计的系统级触觉反馈。
  • 合适情况下,使用反馈生成器 (feedback generator) 来播放预置的震动模式。这些模式可以归入通知 (notification) 、碰撞 (impact) 、和选择 (selection) 集中类型。更多开发者指南。查看 UIFeedbackGenerator
  • 如果你需要对振动效果有更多掌控,你也可以设计你自己的振动模式并播放。更多指南,查看 创建定制化振动模式 (Creating Custom Haptic Patterns)。

如果你使用了系统提供的控件和触觉反馈,iOS 会处理好反馈的力度和具体行为。举例来说,操作开关的时候,会自动播放一次“轻拍”。而伴随“成功”通知生成的振动会按照下面展示的模式进行。用户能够识别这些系统提供的振动反馈,所以按照我们的文档释义使用这些反馈就尤为重要了。

通知 (Notification)

对某个任务或动作的后果进行的反馈,可以使用通知振动。对于存入支票、解锁车辆这样的行为,就可以使用通知振动。

success.mp4 (12.53KB)成功 (Success)。表示任务或操作已经完成。

warning (1).mp4 (12.27KB)警告 (Warning)。表示任务或行为产生了某种警告。

error.mp4 (18.18KB)失败 (Failure)。表示任务或操作已经失败。

碰撞 (Impact)

碰撞振动是一种对物理世界的隐喻。你可以使用这种振动来匹配某些视觉体验。举例来说,当某个视图跳进 (snaps into) 正确的位置,一次轻拍就是恰当的反馈。当两个很重的物体碰撞到一起,强烈的振动就更为合适。

impact_light.mp4 (10.08KB)轻度 (Light)。表达较小或较轻的界面物体之间的碰撞。

impact_medium.mp4 (10.39KB)中度 (Medium)。表达两个中等尺寸,或中等重量的界面物体之间的碰撞。

impact_heavy.mp4 (10.79KB)重度 (Heavy)。表达两个大尺寸,或较重的界面物体之间的碰撞。

impact_rigid_sound.mp4 (11.47KB)强硬 (Rigid)。表达两个较硬的,无弹性的界面物体之间的碰撞。

impact_soft_sound.mp4 (11.93KB)柔软 (Soft)。表达两个柔软、有弹性的物体之间的碰撞。

选择 (Selection)

当界面元素的值发生变化时,可以使用选择振动提供反馈。

retarget.mp4 (10.06KB)选择 (Selection)。表示界面元素的值正在变化。

无论你使用系统提供的触觉反馈还是自行设计,都要注意触觉反馈的目的是丰富用户体验,而非分散用户的注意力。

在设计中考虑触觉 (Designing with Haptics)

在界面设计中加入触觉元素可以将用户对物理世界的经验,迁移到你的应用当中。无论你的应用用何种方式产生触觉反馈,下面的内容都可以帮助你营造整体性的,引人入胜的用户体验。

让每个振动反馈和它的触发点之间,具有明确的因果关联。理想情况下,用户能够理解为何你的应用播放了某种模式的触觉反馈。如果某个振动反馈无法强化因果关系,那么它可能会令人迷惑,似乎没有必要存在。

触觉反馈应当与应用中的其他反馈相配合。就像在物理世界中一样,在你的应用中,视觉、声音和触觉反馈也应该搭配和谐。只有这样,才能使得用户体验更加连贯自然。

谨慎使用触觉反馈。比如说,如果在某个长时间的,持续的交互行为中使用振动,这种特殊的设计会让你的应用显得华而不实。同样的,如果为大量不重要的交互步骤加上触觉反馈,用户也会感到厌烦。只需针对少数重要的,因果关系显著的交互添加触觉反馈即可。

统一连贯地使用触觉反馈。统一连贯的触觉反馈可以帮助用户在某种体验和特定的振动模式之间建立联系。比如说,你可以为某个人物角色,创建一个任务失败的触觉反馈,用户就能够明白这种振动模式与负面的结果之间存在联系。但如果你把相同的振动模式用到升级之类的正面结果上,用户就会感到困惑。

避免过度使用触觉反馈。用户习惯于偶尔出现的视觉反馈。但如果触觉反馈过于频繁,用户可能也会感到厌倦。一般来说,避免让触觉反馈过多、反复出现。最好的触觉反馈体验是让用户习以为常,只有在关闭振动的时候才发现少了些什么。

确保测试过应用中的触觉反馈。关于振动反馈,不同的用户偏好不同,敏感度也不一样。你需要找到尽可能多的用户测试触觉反馈的体验。

触觉反馈应当是可选择的。允许用户关闭或禁用触觉反馈。同时,保证用户在关闭触觉反馈的情况下,仍然能够使用你的应用。

在游戏中,你可以使用定制的触觉反馈来增强玩家的体验。除了在用户与屏幕物体和控件交互的时候播放触觉反馈,你也可以用触觉反馈来表达游戏中的事件。比如说,触觉反馈可以让体验更加“真实”,比如表达碰撞和击打,或者脚步声、逼近的危险这样更难以察觉的事件。

播放触觉反馈可能会影响用户的其他体验。设计角度来说,触觉反馈应当具有足够的力度,以便让用户感受到设备的振动。需要确保用到相机、陀螺仪、或麦克风的功能不受到振动的影响。

设计定制化的振动模式 (Creating Custom Haptic Patterns)

定制化的振动模式可以用来表达释放弹弓、开车驶过减速带等类似的事件。定制化的振动模式同样可以根据用户的输入或情境进行动态地变化。举例来说,当一个游戏角色从树上跳下来,他感受到的振动应当强于原地跳动。

在 iOS13 或更新的版本当中,核心触觉 (Core Haptics) 提供了两种基础的振动。开发者们以它为单位,可以生成定制化的振动模式。

  • 短暂的事件。这种短促、有力的反馈感觉就像轻拍或冲击。点击主屏幕上的闪光灯按钮时,你所感受到的就是这种反馈。
  • 持续的事件。这种反馈呈现为持续的振动。当用户在信息应用中打开了镭射特效 (laser effect) ,他说感受到的就是这种反馈。

除了这些基础单元,你还可以通过改变振动的尖锐度和强度来生成自己的触觉反馈。

Frame 2 (1).png

你可以将尖锐度视为振动波形的一种抽象的表达,其与人们在物理世界中的感受相对应。明确振动的尖锐度可以帮助你告诉系统你想要营造的用户体验。举例来说,通过调整尖锐度的值,你可以传达柔软、圆润、有机的体验,也可以表达坚硬、清晰、机械化的感受。顾名思义,强度对应的是触觉反馈的力度大小。

通过结合短促和持续的振动,并设置不同的尖锐度和强度值,同时配合可选的音频内容,你可以创造各种各样的触觉体验。更多开发者指南,查看 Core Haptics