Fundamentos de SwiftUI y desarrollo de Interfaces
Desarrolla Apps Increíbles: primeros pasos con SwiftUI
Creación de views y uso de preview
Personalización de views con modifiers y uso de shapes
Image render
Composición de Layouts con Stacks
ScrollView y carousel
List y ForEach
Estructurando nuestra app
Quiz: Fundamentos de SwiftUI y desarrollo de Interfaces
Interacción del Usuario y Componentes de Entrada
Button y manejo de estado con @State
Text Field y Text Editor
Picker y DatePicker
Toggle y Slider
Formularios
Alertas y Modales
Gestures
Animaciones y uso del ProgressView
Quiz: Interacción del Usuario y Componentes de Entrada
Manejo del Estado y Arquitectura con ViewModels
ViewModels y @ObservedObject
Compartir Datos con @EnvironmentObject
Creación de Componentes Reutilizables con @Binding
Quiz: Manejo del Estado y Arquitectura con ViewModels
Navegación Avanzada
Navegación con NavigationStack
Personalización de la Barra de Navegación
Quiz: Navegación Avanzada
Lanzamiento de la app
Funcionalidades extra
Lanzamiento en simulador
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Los stacks en SwiftUI son herramientas fundamentales para crear y gestionar la disposición de elementos en una interfaz de usuario. Son componentes que nos permiten agrupar múltiples vistas en una única vista más compleja, organizando elementos en un eje específico. Existen tres tipos principales de stacks en SwiftUI, y cada uno tiene un propósito único:
El VStack es utilizado para agrupar elementos de manera vertical. En un proyecto de SwiftUI, se implementa de la siguiente manera:
VStack {
Text("Nunca")
Text("Pares")
Text("De")
Text("Aprender")
}
En este ejemplo, los textos se alinean uno sobre el otro en un eje vertical. Además, existen atributos que se pueden modificar para personalizar el alineamiento y el espaciado entre los elementos del VStack.
Alineación: controla la alineación de los elementos dentro del VStack. Se puede configurar con el parámetro alignment
y acepta valores como .leading
, .trailing
y .center
.
Espaciado: define el espacio entre los elementos dentro del VStack con el parámetro spacing
.
VStack(alignment: .leading, spacing: 20) {
Text("Nunca")
Text("Pares")
Text("De")
Text("Aprender")
}
Además, podemos usar Spacer
para distribuir el espacio, y frame
para definir dimensiones específicas.
El HStack organiza elementos de manera horizontal, permitiendo que estos se dispongan uno al lado del otro. La implementación de un HStack es similar a la de un VStack pero con un enfoque horizontal:
HStack {
Text("Nunca")
Text("Pares")
Text("De")
Text("Aprender")
}
Al igual que el VStack, los atributos de alineación y espaciado pueden ser modificados. Un ejemplo de cómo podemos ajustar estos atributos es el siguiente:
HStack(alignment: .center, spacing: 20) {
Text("Nunca")
Text("Pares")
Text("De")
Text("Aprender")
}
El ZStack permite la superposición de elementos, colocando uno delante del otro. Es ideal para composiciones donde se desea un efecto de profundidad.
ZStack {
Color.green
Circle()
Rectangle()
.frame(width: 100, height: 100)
.foregroundColor(.yellow)
Text("Hello World")
}
En este código, el Color.green
ocupa todo el espacio disponible, seguido por un Circle
y un Rectangle
, uno sobre otro. Cada elemento del ZStack puede alinearse utilizando directrices como top
, bottom
, leading
, trailing
, etc.
Combinar diferentes tipos de stacks puede ser la clave para diseñar interfaces de usuario complejas y dinámicas. Se pueden anidar stacks dentro de otros para lograr el diseño deseado:
ZStack {
HStack(spacing: 0) {
Rectangle()
.frame(width: 50, height: 100)
.foregroundColor(.red)
Rectangle()
.frame(width: 50, height: 100)
.foregroundColor(.yellow)
}
VStack {
Text("Hello")
Text("World")
}
}
En este ejemplo, se utiliza un ZStack para crear una composición donde un HStack contiene dos rectángulos lado a lado, mientras que un VStack dentro del ZStack organiza dos textos uno encima del otro.
No olvides compartir tus creaciones con la comunidad y aprovechar los recursos proporcionados para seguir creciendo en tu aprendizaje.
Aportes 2
Preguntas 2
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?