在 Xamarin.iOS 中提供触觉反馈
概述
在 iPhone 7 和 iPhone 7 Plus 上,Apple 引入了新的触觉响应,提供了与用户进行身体互动的额外方式。 触觉反馈(通常简称为触觉)在用户界面设计中使用触感(通过力、振动或运动)。 使用这些新的触觉反馈选项来吸引用户的注意力并强化他们的操作。
将详细介绍以下主题:
关于触觉反馈
一些内置的 UI 元素已经提供了触觉反馈,例如选取器、开关和滑块。 iOS 10 现在添加了使用 UIFeedbackGenerator
类的具体子类以编程方式触发触觉的功能。
开发人员可以使用以下 UIFeedbackGenerator
子类之一以编程方式触发触觉反馈:
UIImpactFeedbackGenerator
- 使用此反馈生成器来补充操作或任务,例如当视图滑入到位或两个屏幕上的对象发生碰撞时发出“砰”声。UINotificationFeedbackGenerator
- 使用此反馈生成器来发送通知,例如操作完成、失败或任何其他类型的警告。UISelectionFeedbackGenerator
- 使用此反馈生成器进行主动更改的选择,例如从列表中选择项。
UIImpactFeedbackGenerator
使用此反馈生成器来补充操作或任务,例如当视图滑入到位或两个屏幕上的对象发生碰撞时发出“砰”声。
使用以下代码触发碰撞反馈:
using UIKit;
...
// Initialize feedback
var impact = new UIImpactFeedbackGenerator (UIImpactFeedbackStyle.Heavy);
impact.Prepare ();
// Trigger feedback
impact.ImpactOccurred ();
当开发人员创建 UIImpactFeedbackGenerator
类的新实例时,他们会提供一个 UIImpactFeedbackStyle
,将反馈的强度指定为:
Heavy
Medium
Light
调用 UIImpactFeedbackGenerator
的 Prepare
方法来通知系统即将发生触觉反馈,以便最大程度地减少延迟。
然后,ImpactOccurred
方法会触发触觉反馈。
UINotificationFeedbackGenerator
使用此反馈生成器来发送通知,例如操作完成、失败或任何其他类型的警告。
使用以下代码触发通知反馈:
using UIKit;
...
// Initialize feedback
var notification = new UINotificationFeedbackGenerator ();
notification.Prepare ();
// Trigger feedback
notification.NotificationOccurred (UINotificationFeedbackType.Error);
将创建 UINotificationFeedbackGenerator
类的新实例,并调用其 Prepare
方法来通知系统即将发生触觉反馈,以便最大程度地减少延迟。
调用 NotificationOccurred
以通过给定的 UINotificationFeedbackType
触发触觉反馈:
Success
Warning
Error
UISelectionFeedbackGenerator
使用此反馈生成器进行主动更改的选择,例如从列表中选择项。
使用以下代码触发选择反馈:
using UIKit;
...
// Initialize feedback
var selection = new UISelectionFeedbackGenerator ();
selection.Prepare ();
// Trigger feedback
selection.SelectionChanged ();
将创建 UISelectionFeedbackGenerator
类的新实例,并调用其 Prepare
方法来通知系统即将发生触觉反馈,以便最大程度地减少延迟。
然后,SelectionChanged
方法会触发触觉反馈。
总结
本文介绍了 iOS 10 中提供的新型触觉反馈以及如何在 Xamarin.iOS 中实现这些反馈类型。