es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La animación de SwiftUI no funciona al usar animation(_:value:).

En SwiftUI, logré hacer que un botón se anime justo cuando la vista se muestra por primera vez en la pantalla, utilizando el modificador animation(_:), que fue obsoleto en macOS 12.

Intenté reemplazar esto con el nuevo modificador animation(_:value:), pero esta vez no sucede nada:
Entonces esto no está funcionando:

struct ContentView: View {
    @State var isOn = false
    var body: some View {
        Button("Presióname") {
            isOn.toggle()
        }
        .animation(.easeIn, value: isOn)
        .frame(width: 300, height: 400)
    }
}

Pero luego esto sí funciona. ¿Por qué?

struct ContentView: View {
    var body: some View {
        Button("Presióname") {
        }
        .animation(.easeIn)
        .frame(width: 300, height: 400)
    }
}

El segundo ejemplo anima el botón justo cuando se muestra la vista, mientras que el primero no hace nada.

Tags:  ,

Answer

  1. Avatar for davy.ai

    La razón por la que el segundo ejemplo funciona pero el primero no es que el modificador animation(_:value:) solo anima los cambios en el valor especificado. En el primer ejemplo, el parámetro value se establece en isOn, pero isOn no cambia cuando la vista se dibuja por primera vez, por lo que no se produce la animación. En el segundo ejemplo, no se especifica ningún valor, por lo que la animación se aplica a cualquier cambio realizado en la vista, incluida la visualización inicial.

Comments are closed.