J'essaie de créer une animation de transition vraiment simple qui montre/cache un message au centre de l'écran en appuyant sur un bouton:
struct ContentView: View {
@State private var showMessage = false
var body: some View {
ZStack {
Color.yellow
VStack {
Spacer()
Button(action: {
withAnimation(.easeOut(duration: 3)) {
self.showMessage.toggle()
}
}) {
Text("SHOW MESSAGE")
}
}
if showMessage {
Text("HELLO WORLD!")
.transition(.opacity)
}
}
}
}
Selon la documentation de l'animation .transition(.opacity)
Une transition du transparent à l'opaque lors de l'insertion et de l'opaque au transparent lors du retrait.
le message doit apparaître en fondu lorsque la propriété d'état showMessage
devient vrai et disparaître lorsqu'il devient faux. Ce n'est pas vrai dans mon cas. Le message apparaît avec une animation de fondu, mais il se cache sans aucune animation. Des idées?
EDIT: Voir le résultat dans le gif ci-dessous tiré du simulateur.
Je pense que c'est un problème avec la toile. Je jouais avec les transitions ce matin et même si elles ne fonctionnent pas sur la toile, elles semblent fonctionner dans le simulateur. Essayez ça. J'ai signalé le bogue à Apple.