在 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

调用 UIImpactFeedbackGeneratorPrepare 方法来通知系统即将发生触觉反馈,以便最大程度地减少延迟。

然后,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 中实现这些反馈类型。