TABVIEW en SWIFTUI en Español
TabView en SwiftUI 2.0 es una vista que nos permite tener una barra inferior en nuestra app para poder seleccionar distintas vistas secundarias. Cuando pulsamos una opción del TabView automáticamente se muestra la vista que pertenece a esa opción del TabView
Tabla de contenido
TabView en SwiftUI 2.0 es una vista que nos permite tener una barra inferior en nuestra app para poder seleccionar distintas vistas secundarias y así poder navegar entre ellas. Cuando pulsamos una opción del TabView automáticamente se muestra la vista que pertenece a esa opción del TabView.
TabView en código
Para crear nuestro primer TabView creamos un proyecto de cero y a continuación debemos añadirlo en la variable body de nuestro contentView.
Podemos ver en el canvas que nuestro TabView aparece abajo del todo de la pantalla, pero no aparece ningún opción clickable, es decir está vacío.
Vamos a crear nuestra primera opción dentro del TabView. Para ello debemos añadir el modificador .tabBarItem en nuestro único Text, con este modificador como veremos a continuación añadiremos un Image y un Text, de esta manera el user verá esta opción en el TabView y sabrá que podrá seleccionarla para ir a esa vista.
Como hemos dicho dentro del modificador .tabBarItem añadiremos dos vistas un Image y un Text. El Image lo usaremos para mostrar un icono del sistema y el Text para darle un texto más descriptivo, por ejemplo Home.
Ya tenemos una opción en nuestra TabView. Vamos a añadir otra vista que llamaremos Profile. Así el user podrá escoger entre seleccionar Home y Profile.
Ahora mismo tenemos la posibilidad de navegar entre estas dos vistas. Todo gracias al TabView. Como curiosidad podemos modificar el color que aparece cuando seleccionamos una de las opciones, es tan sencillo como usar el modificador .accentColor
Añadiendo este modificador hemos cambiado el color que aparece al seleccionar una opción del TabView, hemos pasado del azul (que es el que tenemos por defecto), al verde.
En nuestro ejemplo estamos usando vistas muy simples, si pulsamos en Home aparece un Text y si pulsamos en Profile aparece otro Text. Podríamos modificarlo para que fueran vistas más complejas. Vamos a ver qué pasaría.
Hemos sustituido nuestro Text por un VStack con más vistas en su interior. Aún así esta vista es simple, pero es solo para que te hagas la idea de que podría tener muchos más componentes. Si seguimos añadiendo más vistas sería muy complejo actualizar la vista donde tenemos nuestro TabView (en este caso es ContentView).
¿Conoces el dicho "Divide y vencerás"? pues en este caso es una buena práctica para evitar tener vistas con muchas lineas de código. La idea es separarlas en vistas más pequeñas y después componerlas en otra vista. Por eso vamos a extraer nuestra vista que aparece al pulsar Home en el TabView.
En este caso, lo que significa extraer es mover una parte del código de una vista con muchas líneas, a otra vista que solo tendrá el código que movemos.
Para ello vamos a extraer el código, y vamos a meter el VStack:
De esta manera, dentro de nuestro TabView quedaría de la siguiente manera:
Mucho más "limpio" y legible para cualquiera que vea tu código. Vamos hacer lo mismo para la vista del Profile:
Y vamos a sacar de cada vista que hemos creado el tabItem, ¿por qué? para que nos sea más fácil ver el código relacionado con el TabView en un único lugar y no repartido en diferentes vistas.
Nuestro código quedaría de la siguiente manera:
- ContentView con la TabView y el modificador .tabItem
- La vista HomeView con su código específico.
- La vista ProfileView con su código específico.
PageTabViewStyle
Podemos usar TabView con un estilo de PageTabViewStyle para que en lugar de pulsar en las opciones del TabView, podamos hacer Swipe derecho o izquierdo para movernos entre las distintas vistas de nuestro TabView.
Es muy útil por ejemplo en pantallas de onboarding de tu app, donde puedes explicas al user cómo usar tu app o qué funcionalidades tiene. Puedes añadir todos los pasos con un simple TabView y añadiendo el estilo PageTabViewStyle.
Hasta aquí el post de hoy, gracias por leernos! 🤓
👉👉 SUSCRÍBETE al CANAL de youtube
Si tienes preguntas no dudes en contactar con nosotros a través de Twitter