次の方法で共有


Xamarin.iOS での触覚フィードバックの提供

概要

iPhone 7 と iPhone 7 Plus で、Apple は新しい触覚応答を組み込みました。これにより、ユーザーを物理的に関与させる方法が追加されています。 触覚フィードバック (多くの場合、単に触覚と呼ばれます) は、ユーザー インターフェイス設計で (力、振動、動きによる) タッチ感覚を使用します。 これらの新しい触覚フィードバック オプションを使用して、ユーザーの注意を引き、アクションを強化します。

次のトピックで、詳しく説明します。

触覚フィードバックについて

いくつかの組み込み UI 要素は、ピッカー、スイッチ、スライダーなどの触覚フィードバックを既に提供しています。 iOS 10 は、UIFeedbackGenerator クラスの具象サブクラスを使用して、プログラムによって触覚をトリガーする機能を追加しました。

開発者は、次の UIFeedbackGenerator サブクラスのいずれかを使用して、プログラムによって触覚フィードバックをトリガーできます。

  • UIImpactFeedbackGenerator - このフィードバック ジェネレーターは、ビューがスライドして所定の位置に移動したときや、2 つの画面上のオブジェクトが衝突したときに "ドスン" と響くなど、アクションやタスクを補完するために使用します。
  • UINotificationFeedbackGenerator - このフィードバック ジェネレーターは、アクションの完了、失敗、その他の種類の警告などの通知に使用します。
  • UISelectionFeedbackGenerator - このフィードバック ジェネレーターは、リストから項目を選ぶなど、アクティブに変化する選択に使用します。

UIImpactFeedbackGenerator

このフィードバック ジェネレーターは、ビューがスライドして所定の位置に移動したときや、2 つの画面上のオブジェクトが衝突したときに "ドスン" と響くなど、アクションやタスクを補完するために使用します。

インパクト フィードバックをトリガーするには、次のコードを使用します。

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 でそれらを実装する方法について説明しました。