我有一个基本设置,可以使用下面的代码在我的 ContentView 上显示另一个视图。
struct ContentView: View {
@State var otherViewShowing: Bool = true
var body: some View {
if otherViewShowing {
OtherView(amIShowing: $otherViewShowing)
} else {
Text("Hello, world!")
}
}
}
但是,当我通过更改 OtherView 中按钮中的“amIShowing”将“otherViewShowing”变量设置为 false 时,视图突然消失并且文本“Hello, world!”立即显示。我试图让 OtherView 在更新 ContentView 以显示“Hello, world!”之前播放缩小动画。所以比较流畅。
struct OtherView: View {
@Binding var amIShowing: Bool
@State private var scaleAmount: CGFloat = 1
var body: some View {
VStack {
Button("Tap me") {
withAnimation(.default) {
amIShowing = false
scaleAmount = 0
}
}
}
.scaleEffect(scaleAmount)
}
}
对实现这一点有什么想法吗?提前致谢。