iOS Haptics Feedback (触感反馈)
要求
- iOS 10.0+
- iPhone 7/7P 或更新机型
- 打开”设置–声音与触感–系统触感反馈”选项
相关类说明
UIFeedbackGenerator:一个抽象类,不要子类化或创建此类的实例。我们应该使用它的三个子类 (UIImpactFeedbackGenerator, UISelectionFeedbackGenerator, UINotificationFeedbackGenerator)。
类 | 说明 |
---|---|
UIImpactFeedbackGenerator | 提供物理体验,补充动作或任务的视觉反馈。 例如,当视图滑入到位或两个对象发生碰撞时,用户可能会感到砰的一声。 |
UISelectionFeedbackGenerator | 表示选择正在积极更改。 例如,用户在滚动拾取轮时感觉轻敲。 |
UINotificationFeedbackGenerator | 表示任务或操作(例如存入支票或解锁车辆)已完成、失败或产生某种警告。 |
使用姿势
- 实例化Generator (UIImpactFeedbackGenerator, UISelectionFeedbackGenerator, UINotificationFeedbackGenerator)
- 准备工作,调用
-prepare
方法 - 触发触觉反馈,调用相应的触发方法(impactOccurred, selectionChanged, notificationOccurred:)
- 释放Generator
其中第2、4步可省略。
如有兴趣,可 点此 前往查看官方的示例代码。
代码示例
UIImpactFeedbackGenerator
UIImpactFeedbackGenerator *feedbackGenerator = [[UIImpactFeedbackGenerator alloc] initWithStyle:UIImpactFeedbackStyleLight]; [feedbackGenerator impactOccurred];
可以在实例化 UIImpactFeedbackGenerator 时指定震动反馈的力度,有三个枚举值:
- UIImpactFeedbackStyleLight 轻微震动
- UIImpactFeedbackStyleMedium 中度震动
- UIImpactFeedbackStyleHeavy 重度震动
UISelectionFeedbackGenerator
UISelectionFeedbackGenerator *feedbackGenerator = [[UISelectionFeedbackGenerator alloc] init]; [feedbackGenerator selectionChanged];
UINotificationFeedbackGenerator
UINotificationFeedbackGenerator *feedbackGenerator = [[UINotificationFeedbackGenerator alloc] init]; [feedbackGenerator notificationOccurred:UINotificationFeedbackTypeSuccess];
UINotificationFeedbackTypeSuccess 和 UINotificationFeedbackTypeWarning 均是震动两次,两者差异不是很大,就我个人感觉而已,UINotificationFeedbackTypeSuccess 的第一下震动力度稍微轻点;UINotificationFeedbackTypeError 则会震动三下,但震动的力度(频率)和每次震动之间的时间间隔也不相同。