我目前正在尝试使用SwiftUI。在SwiftUI中,可以通过以下方式对状态进行动画处理:
struct Foo: View {
@State private var show = false
var body: some View {
VStack {
if show {
Text("Foo")
}
Button(action: {
withAnimation {
self.show.toggle()
}
}) {
Text(show ? "Hide" : "Show")
}
}
}
}
但是如果我有一个TextField:
struct Foo: View {
@State private var text = ""
var body: some View {
VStack {
TextField($text, placeholder: Text("Foo")) {
print("editing ended")
}
if !text.isEmpty {
Button(action: {}) {
Text("Done")
}
}
}
}
}
我无法找到一种方法来使这个改变产生动画效果,因为State属性是由TextField更改的,而没有调用withAnimation()。
有可能实现这个改变带有动画吗?
withAnimation
来包装状态更改。而在第二个示例中,您没有这样做。因此,不清楚您想要动画的内容是什么。 - matt