import SwiftUI
struct ContentView: View {
@State private var isButtonTapped = false
var body: some View {
VStack {
Button("点击我") {
isButtonTapped.toggle()
}
if isButtonTapped {
Text("按钮已被点击")
}
}
}
}
数据绑定原理解释
- @State的作用:在SwiftUI中,
@State
是一个属性包装器。当一个变量被@State
修饰时,SwiftUI会为该变量创建一个独立的存储,并跟踪其变化。每次isButtonTapped
的值发生改变时,SwiftUI会自动重新计算并更新与之相关的视图部分。
- 视图更新:在
body
视图中,if isButtonTapped
条件判断语句依赖于isButtonTapped
的值。当按钮被点击,isButtonTapped
通过toggle()
方法改变值,SwiftUI检测到这个变化后,会重新构建body
视图,从而决定是否显示Text("按钮已被点击")
。这种机制实现了数据(isButtonTapped
)和视图(Text
是否显示)之间的自动绑定。