Animation modifier

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 { }

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


Extras

Apple Developer Documentation