Modificadores en SwiftUI: mask
El modificador mask en SwiftUI nos permite crear máscaras entre 2 vistas. Al aplicar estas máscaras podemos crear efectos muy atractivos para nuestras aplicaciones como el que vemos en este post.
Tabla de contenido
Hoy en SwiftBeta vamos a aprender otro modificador en SwiftUI llamado mask. Este modificador nos permite crear máscaras de nuestras vistas en SwiftUI. Vamos a crear un muy potente para nuestras aplicaciones, como este que os estoy mostrando. Aquí estamos aplicando una mask con una animación y da la sensación de que estar en un bucle infinito. Vamos a crear este ejemplo en el video de hoy.
Creamos proyecto en Xcode
Para hacerlo, vamos a entender primero qué hace este modificador. Como siempre vamos crear un proyecto en Xcode. Vamos a escoger como Interface SwiftUI. Y una vez creado, vamos a la vista ContentView y allí escribimos el siguiente código:
Hasta aquí nada nuevo, de momento hemos creado un Rectangle de color orange con un tamaño de 300x200. A continuación, usamos el modificador mask:
Dentro del modificador mask podemos añadir la vista que queramos. Si añadimos un Text con un texto obtenemos este efecto. Fijate que no hemos especificado el color de nuestro Text, se está usando el orange de nuestro Rectangle. Esto es importante tenerlo en cuenta para la vista que vamos a crear a continuación.
Ejemplo real en SwiftUI
Ahora vamos a construir la siguiente vista con esta animación. Para hacerlo, vamos a usar la siguiente imagen.
Dentro de nuestra vista vamos a añadir un ZStack y un ScrollView:
A continuación vamos a añadir la imagen a nuestro proyecto de Xcode. La arrastramos en la carpeta Assets y seleccionamos Single Scale.
Una vez añadida la imagen, ya la podemos llamar desde nuestro código. Dentro del ScrollView vamos a crear dos Image y vamos a mostrar la imagen que acabamos de añadir.
Ahora vamos a usar una vista landscape del Canvas, ya que queremos que nuestra vista aparezca en horizontal. Perfecto, vamos a continuar, y lo siguiente que vamos hacer es añadir es la animación. Ahora creamos una propiedad de tipo @State.
Esta propiedad la vamos a usar en el ScrollView.
Ahora lo que queremos hacer es que cuando nuestra vista aparezca en la pantalla, queremos empezar la animación. Esto lo podemos hacer dentro del modificador onAppear.
Podemos compilar el siguiente código en el simulador y vemos como la animación se repite.
Lo siguiente que vamos hacer es aplicar el modificador mask. El modificador mask lo vamos a aplicar al ScrollView y dentro vamos añadir un Text con "SwiftBeta"
Podemos ver en el Canvas o en el simulador el efecto que se aplica. Y podemos ver la animación que aparece, dando un efecto muy chulo para crear dentro de nuestras apps. Antes de acabar, vamos a mejorar un poco esta animación y vamos a añadir un gradient. Creamos una propiedad gradient en nuestra vista:
Usamos este gradient para dar un background color a nuestro ScrollView. Nuestra vista quedaría finalmente con el siguiente código:
Conclusión
Hoy hemos aprendido a usar un ViewModifier de SwiftUI muy útil para crear estos efectos en nuestras aplicaciones. Este es un ejemplo pero se podría aplicar para crear diferentes efectos o animaciones.