gpt4 book ai didi

swift - SwiftUI 中的动画状态变化

转载 作者:搜寻专家 更新时间:2023-11-01 06:11:18 25 4
gpt4 key购买 nike

我目前正在研究 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 属性在没有调用 withAnimation() 的情况下由 TextField 更改。

是否有可能使这种变化动画化?

最佳答案

只需添加动画修改器来包装您的按钮

  var body: some View {
VStack {
TextField($text, placeholder: Text("Foo")) {
print("editing ended")
}
// if !text.isEmpty {
Button(action: {}) {
Text("Done")
}
.background(text.isEmpty ? Color.red : Color.yellow )
//.animation(.basic(duration: 1))
.animation(Animation.default.speed(1))
}
}
}

关于swift - SwiftUI 中的动画状态变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56509762/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com