No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Gestures

15/23
Recursos

SwiftUI nos permite integrar gestos, interpretando interacciones físicas del usuario como taps o arrastres. Este conocimiento no solo transforma la experiencia del usuario, sino que también lleva el diseño de apps a otro nivel.

¿Cómo comenzar con gestos en Xcode?

Iniciaremos nuestro proyecto creando un archivo SwiftUI en Xcode que llamaremos GesturesPractice. Dentro de este archivo trabajaremos con un elemento visual, en este caso, un círculo, que cambiará de color al detectar distintos gestos.

Para lograrlo, primero declaramos un estado de tipo Color:

@State private var color: Color = .black

Este estado controlará el color inicial del círculo, que será negro.

¿Cómo implementar el gesto 'ontap'?

El gesto tap es uno de los más comunes y permite cambiar el color del círculo tras un toque. Utilizamos el modificador onTapGesture, que ejecuta un bloque de código para transformar el color de negro a rojo:

Circle()
    .foregroundColor(color)
    .onTapGesture {
        color = .red
    }

Además, se puede modificar el comportamiento del tap a través de un parámetro llamado count, que controla el número de taps necesarios para activar el código:

.onTapGesture(count: 2) {
    color = .red
}

¿Cómo usar un 'long press' gesture?

El gesto de presionar largo añade otra dimensión de interactividad. Con onLongPressGesture, el usuario puede cambiar el color a azul al mantener presionado el círculo. Permite una personalización adicional gracias al atributo minimumDuration, que establece la duración del gesto:

.onLongPressGesture(minimumDuration: 3) {
    color = .blue
}

¿Qué es un 'drag gesture'?

El drag permite mover elementos de la pantalla de forma dinámica. Añadimos el gesture modifier con un DragGesture y rastreamos el desplazamiento usando un estado offset de tipo CGSize:

@State private var offset = CGSize.zero

Circle()
    .offset(offset)
    .gesture(DragGesture().onChanged { value in
        offset = value.translation
    })

Este gesto proporciona un control directo del valor offset que se traduce en la posición del círculo en pantalla.

Entender y utilizar gestos en SwiftUI transforma cualquier app, añadiendo fluidez y mejorando significativamente la experiencia del usuario. Estos elementos son ideales para hacer interfaces más interactivas y reactivas. Así que adelante, explora más allá de lo que ves a primera vista y lleva tus habilidades de desarrollo móvil al siguiente nivel.

Aportes 0

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?