gpt4 book ai didi

ios - 当 Toggle 状态改变时做一些事情

转载 作者:行者123 更新时间:2023-11-29 05:13:48 25 4
gpt4 key购买 nike

我正在使用 SwiftUI,并且想要在切换状态更改时执行某些操作,但我找不到解决方案。

当切换状态发生变化时,如何调用函数或执行任何操作?

@State var condition = false

Toggle(isOn: $condition) {
Text("Toggle text here")
}

最佳答案

如果你想在切换状态改变时做一些事情,你可以使用didSet。

struct ContentView: View {

@State var condition = false{
didSet{
print("condition changed to \(condition)")
}
}

var body: some View {

let bind = Binding<Bool>(
get:{self.condition},
set:{self.condition = $0}
)

return Toggle(isOn: bind){
Text("Toggle text here")
}
}
}

当我们说@State var condition = true时,它的类型是State<Bool>而不是Bool 。 当我们在切换中使用绑定(bind)时(本例中为 $condition),切换会直接更改存储的值。这意味着它永远不会改变@State,所以didSet永远不会被触发。

所以在这里我们创建并分配给 let bind Binding<Value> 的一个实例struct,并直接在切换中使用该 Binding 结构。比我们设置self.condition = $0时,就会触发didSet。

关于ios - 当 Toggle 状态改变时做一些事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59395501/

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