Xamarin.iOS での触覚フィードバックの提供
概要
iPhone 7 と iPhone 7 Plus で、Apple は新しい触覚応答を組み込みました。これにより、ユーザーを物理的に関与させる方法が追加されています。 触覚フィードバック (多くの場合、単に触覚と呼ばれます) は、ユーザー インターフェイス設計で (力、振動、動きによる) タッチ感覚を使用します。 これらの新しい触覚フィードバック オプションを使用して、ユーザーの注意を引き、アクションを強化します。
次のトピックで、詳しく説明します。
- 触覚フィードバックについて
- UIImpactFeedbackGenerator
- UINotificationFeedbackGenerator
- UISelectionFeedbackGenerator
触覚フィードバックについて
いくつかの組み込み 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
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 でそれらを実装する方法について説明しました。