
Desde que Steve Jobs lanzó el primer iPhone el año 2007, Apple ha estado trabajando arduamente para dotar al sistema operativo iOS de varios eventos táctiles para que tu experiencia sea muy positiva. Para ello, Apple desarrolló el framework UIKit que está disponible para los dispositivos iPhone, iPad, Apple Watch, Apple TV, HomePod y Apple CarPlay. A continuación, te he escrito los gestos más importantes con su nombre en español e inglés:
- Pulsar o Tap.
- Arrastrar o Drag.
- Golpecito o Flick.
- Arrastre rápido o Swipe.
- Golpe doble o Double Tap.
- Pellizco o Pinch.
- Tocar y sostener o Touch and Hold.
- Agitar o Shake.
Puedes ver en acción estos gestos en el vídeo que te he creado usando la sección Gestures que está en la iOS Human Interface Guidelines de Apple.
El framework UIKit dispone de la clase base UIGestureRecognizer para establecer la lógica para implementar los toques que recibe la pantalla. El detalle de las subclases, propiedades y métodos que Apple ha creado está en su Developer Documentation. Las subclases tienen variables y funciones que habilitan características específicas para cada tipo de gesto. Por ejemplo, si utilizas el gesto de pellizco o pinch para aumentar el tamaño de una foto, es de gran ayuda tener la propiedad scale para conocer exactamente el valor de escala que aumentará el gesto a esa foto. De igual forma, la variable velocity dirá la rapidez con la que el usuario ha hecho este gesto de aumentar, siendo muy útil esta información para añadirle una animación muy atractiva acorde a la velocidad del gesto. Las subclases disponibles son:
- UITapGestureRecognizer
- UIPinchGestureRecognizer
- UIRotationGestureRecognizer
- UISwipeGestureRecognizer
- UIPanGestureRecognizer
- UIScreenEdgePanGestureRecognizer
- UILongPressGestureRecognizer
En el siguiente vídeo podrás ver el contenido de UIGestureRecognizer en Developer Documentation:
Aquí puedes ver la Live View del Playground que programarás paso a paso en la parte 2 con Xcode 10 y Swift 4.2:
CFIDT de la UNED (Centro de Formación en Innovación Digital y Tecnología)
LINHD de la UNED (Laboratorio de Innovación en Humanidades Digitales)