@Published
@Published
是SwiftUI中用于标记属性的一个属性包装器,通常与ObservableObject
协议一起使用。它使得属性的变化能够自动通知观察者,从而更新用户界面。
具体用法示例:
import SwiftUI
import Combine
class MyModel: ObservableObject {
@Published var count: Int = 0
}
struct ContentView: View {
@ObservedObject var model = MyModel()
var body: some View {
VStack {
Text("Count: \(model.count)")
.font(.largeTitle)
Button("Increment") {
model.count += 1
}
}
.padding()
}
}
工作原理:
属性声明:
@Published
修饰符用于MyModel
类中的count
属性。这意味着每当count
的值发生变化时,SwiftUI会自动发出通知。视图观察:
ContentView
通过@ObservedObject
观察MyModel
实例。当model.count
改变时,SwiftUI会自动重新渲染视图。
其他注意事项:
可以在
@Published
属性上添加一些逻辑,比如计算属性,来处理与UI更新相关的复杂情况。适合用来管理简单的状态数据,比如计数器、文本输入等。
如果你还有其他具体问题或想了解的内容,请告诉我!
Last updated