Animowałem tekst wyświetlający zmienną wewnątrz po naciśnięciu przycisku, przy wyświetlaniu animacji "Spring".

Jeśli zmienne zmiany tekstu zmieni się tylko na końcu, gdzie jest wyświetlany.

Problem polega na tym, że z tego powodu, gdy przycisk jest ponownie naciśnięty, animację "Spring" ma zastosowanie tylko do końca tekstu.

Próbowałem, aby przycisk najpierw usunie tekst, a następnie przepisać go, ale animacja nadal stosuje się tylko do części, która zmienia się.

Czy jest jakiś sposób, aby tekst ponownie pojawił się ponownie lub ponownie przeanalizować od samego początku?

Oto odpowiedni bit kodu.

                Button(action: {

                    self.outputText = "This is my variable: \(variable)."

                }) {
                       Text("Button text")
                   }

                Text(outputText)
                    .animation(.spring())

0
Diocrasis 5 wrzesień 2020, 19:24

1 odpowiedź

Najlepsza odpowiedź

Oto możliwe podejście - jasne i aktualizuj z nieco opóźnieniem.

Wersja demonstracyjna przygotowana i przetestowana z Xcode 12 / iOS 14

demo

    Button(action: {
        self.outputText = ""
        DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) {
            self.outputText = "This is my variable: \(variable)."
        }

    }) {
           Text("Button text")
       }

    Text(outputText)
        .animation(.spring())
0
Asperi 5 wrzesień 2020, 16:53