Provisión de comentarios hápticos en Xamarin.iOS

Información general

En el iPhone 7 y el iPhone 7 Plus, Apple ha incluido nuevas respuestas hápticas que ofrecen formas adicionales de involucrar físicamente al usuario. Los comentarios hápticos (a menudo denominados simplemente hápticos) usan la sensación de tacto (a través de la fuerza, las vibraciones o el movimiento) en el diseño de la interfaz de usuario. Utilice estas nuevas opciones de respuesta táctil para llamar la atención del usuario y reforzar sus acciones.

Los siguientes temas se tratarán en detalle:

Acerca de los comentarios hápticos

Varios elementos integrados de la interfaz de usuario ya proporcionan comentarios hápticos, como selectores, conmutadores y controles deslizantes. iOS 10 ahora agrega la capacidad de desencadenar elementos hápticos mediante programación con una subclase concreta de la clase UIFeedbackGenerator.

El desarrollador puede usar una de las subclases siguientes UIFeedbackGenerator para desencadenar mediante programación comentarios hápticos:

  • UIImpactFeedbackGenerator: use este generador de comentarios para complementar una acción o tarea, como presentar un "ruido sordo" cuando una vista se desliza en su lugar o si dos objetos en pantalla colisionan.
  • UINotificationFeedbackGenerator: use este generador de comentarios para notificaciones como una acción completada, con errores o cualquier otro tipo de aviso.
  • UISelectionFeedbackGenerator: use este generador de comentarios para una selección que cambie activamente, como seleccionar un elemento de una lista.

UIImpactFeedbackGenerator

Use este generador de comentarios para complementar una acción o tarea, como presentar un "ruido sordo" cuando una vista se desliza en su lugar o si dos objetos en pantalla colisionan.

Use el código siguiente para desencadenar comentarios de impacto:

using UIKit;
...

// Initialize feedback
var impact = new UIImpactFeedbackGenerator (UIImpactFeedbackStyle.Heavy);
impact.Prepare ();

// Trigger feedback
impact.ImpactOccurred ();

Cuando el desarrollador crea una nueva instancia de la clase UIImpactFeedbackGenerator, proporciona un UIImpactFeedbackStyle que especifique la intensidad de los comentarios como:

  • Heavy
  • Medium
  • Light

Se llama al método Prepare de UIImpactFeedbackGenerator informar al sistema de que están a punto de darse comentarios hápticos para que pueda minimizar la latencia.

A continuación, el método ImpactOccurred desencadena comentarios hápticos.

UINotificationFeedbackGenerator

Use este generador de comentarios para notificaciones como una acción que se complete, produzca errores o cualquier otro tipo de advertencia.

Use el código siguiente para desencadenar comentarios de notificación:

using UIKit;
...

// Initialize feedback
var notification = new UINotificationFeedbackGenerator ();
notification.Prepare ();

// Trigger feedback
notification.NotificationOccurred (UINotificationFeedbackType.Error);

Se crea una nueva instancia de la clase UINotificationFeedbackGenerator y se llama a su método Prepare para informar al sistema de que están a punto de darse comentarios hápticos para que pueda minimizar la latencia.

Se llama a NotificationOccurred para desencadenar comentarios hápticos con un UINotificationFeedbackType dado de:

  • Success
  • Warning
  • Error

UISelectionFeedbackGenerator

Use este generador de comentarios para una selección que cambie activamente, como seleccionar un elemento de una lista.

Use el código siguiente para desencadenar comentarios de selección:

using UIKit;
...

// Initialize feedback
var selection = new UISelectionFeedbackGenerator ();
selection.Prepare ();

// Trigger feedback
selection.SelectionChanged ();

Se crea una nueva instancia de la clase UISelectionFeedbackGenerator y se llama a su método Prepare para informar al sistema de que están a punto de darse comentarios hápticos para que pueda minimizar la latencia.

A continuación, el método SelectionChanged desencadena comentarios hápticos.

Resumen

En este artículo se han tratado los nuevos tipos de comentarios hápticos disponibles en iOS 10 y cómo implementarlos en Xamarin.iOS.