触觉反馈为移动用户交互增加了一个全新的维度。 了解如何使用新的iPhone 7触觉反馈API为您的用户提供触觉响应。
什么是触觉反馈?
在iOS 10中,我们有一个新的API向用户提供反馈。 触觉反馈是每个用户已经习惯的视觉反馈的扩展。 如果您使用的是iPhone 7或iPhone 7 Plus,则在滚动日期选择器或更改开关的值时可能会注意到设备的轻微振动,这是触觉反馈。 新的UIFeedbackGenerator
类可用于在您的应用中实现相同的行为。
何时使用
来自iOS人机界面指南的触觉反馈的第一条规则:不要过度使用它! 您不应该向用户发送无用的反馈。 如果这样做,他们可能决定关闭整个设备的此功能。 由于可以禁用它,因此请勿将触觉反馈作为与用户进行反馈的唯一方法。 它可能在某些设备上不可用,并且在不支持该请求的旧设备上,请求将被静默忽略。
通常,触觉反馈应该是对用户发起的动作的响应。 这样,用户可以更轻松地将反馈与其来源相关联。
最后,如果您想同时播放声音,则应注意使其同步。
如何选择正确的反馈
Apple的iOS 10新增功能文档中指定应使用以下三个具体类之一:
-
UIImpactFeedbackGenerator
提供了一种物理隐喻,可以补充视觉体验。 例如,当视图滑入到位或两个对象碰撞时,用户可能会感到震撼。 它具有三种变体: 成功 , 警告和失败 。 -
UINotificationFeedbackGenerator
指示任务或动作(例如,存入支票或解锁车辆)已完成,失败或产生了警告。 它具有三种变体: 轻 , 中和重 。 -
UISelectionFeedbackGenerator
表示选择正在积极更改。 例如,用户在滚动拾取轮时感到轻敲。 该反馈旨在通过一系列离散值来传达运动,而不是进行选择或确认选择。
为了解释这些不同的类型,文档中有带声音的视频,以说明每种反馈类型的模式。 在Apple Developer网站上尝试一下。
如何执行反馈
现在开始编码! 我们将构建一个非常简单的iOS应用,当按下按钮时会提供成功反馈。 打开Xcode 8并创建一个新的iOS项目。
在情节提要文件中添加一个按钮,并创建一个IBAction来触发反馈。
反馈生成器的生命周期如下所示:
- 实例化生成器。
- 准备发电机(可选)。
- 触发反馈。
- 释放发生器(可选)。
我将引导您完成下面的每个步骤。
实例化生成器
首先,声明一个类型为UINotificationFeedbackGenerator
的新变量。 如果您想使用其他类型的反馈,只需更改此类。
var feedbackGenerator: UINotificationFeedbackGenerator? // Declare the generator type.
在viewDidLoad
初始化生成器:
override func viewDidLoad() {
super.viewDidLoad()
feedbackGenerator = UINotificationFeedbackGenerator() // Instantiate the generator.
}
准备发电机
如果事先知道用户将要触发反馈,则应调用prepare()
方法。 这将减少方法调用和实际硬件反馈之间的等待时间。 例如,当您想在手势过程中提供多个反馈时。 在这种情况下,请先准备发生器,以减少等待时间。
触发反馈
在我们正在构建的示例中,我们无法知道用户何时按下按钮。 因此,在操作内部,我们会立即触发反馈。
@IBAction func triggerNotification(_ sender: UIButton) {
feedbackGenerator?.notificationOccurred(.success) // Trigger the haptic feedback.
}
释放发电机
我们已将生成器声明为可选的,以便万一不再需要它时,可以将其设置为nil
以释放其所有资源。 这是一个可选步骤。
当前尚无法在Simulator中测试触觉反馈。 您应该动手使用iPhone 7,并使用新的反馈系统来测试应用程序的流程。 在iPhone 7上运行该应用程序,然后按屏幕上的按钮。 您应该获得成功的反馈!
在向自己的应用添加反馈支持时,请确保在上下文中感觉正确 您的用户所期望的,否则他们可能会感到困惑。
结论
触觉反馈是一项很棒的新功能,可让您的应用感觉更逼真。 用户总是很高兴看到您的应用程序支持其设备的最新功能,因此请立即进行实施。
翻译自: https://code.tutsplus.com/tutorials/haptic-feedback-in-ios-10--cms-27668