我试图创建一个非常简单的过渡动画,通过点击按钮在屏幕中央显示/隐藏一条消息:
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)
}
}
}
}
根据.transition(.opacity)
动画的文档
插入时从透明到不透明的过渡,以及从不透明到透明的过渡
当showMessage
state属性变为true时,消息应淡入,当变为false时,消息应淡出.我的情况并非如此.该消息显示为淡入淡出动画,但隐藏时完全没有动画.有什么 idea 吗?
EDIT:在下面取自模拟器的gif中查看结果.