Es un modificador de vistas que nos permite agregar algún tipo de animación a una vista o elemento existente.
❌
✅
VStack {}
.animation(.easeOut)
Button()
.animation(.easeOut)
.animation()
se aplica a todos los elementos hijos, por lo que es buena práctica evitar utilizarlo en contenedores padres
withAnimation{ }
nos permite ejecutar animaciones de forma precisa y explicita indicándole a SwiftUI el cambio preciso que queremos realizar y a qué componente. Para ello lo que haremos es envolver los cambios deseados llamando a withAnimation()
Al hacer el llamado podría recibirse como método algún tipo de animación explícita de las que vienen inferidas en SwiftUI
withAnimation(Animation.easeIn(duration: 2).delay(0.5)) {
width = 10
color = .blue
}
También es posible utilizar withAnimation -por ejemplo- en la acción de un botón que realice toggle para mostrar o no una pantalla de forma que, la pantalla se muestre de una forma más dinámica.
Button {
withAnimation {
dataModel.showStats.toggle()
}
} label: {
Image(systemName: "chart.bar")
}
// Otro ejemplo
Button("Press here") {
withAnimation {
opacity -= 0.2
}
how-to-create-an-explicit-animation-1.mp4