手动更新 SwiftUI 视图

The*_*net 2 data-binding ios swift swiftui

传统上,SwiftUI 应用程序会自动更新其视图以响应任何状态更改。当@State propertyWrapper 检测到任何更新时,就会发生这种情况。我很好奇,是否可以手动重绘 SwiftUI 视图,而不是依赖 @State 数据绑定技术?

Sor*_*ica 7

您可以将ObservableObject对象用作模型,然后调用objectWillChange.send()以触​​发刷新

struct MyView : View {
    @ObservedObject var model: Model
    var body: some View { .. }
}

class Model: ObservableObject { 
    func reloadView() {
        objectWillChange.send()
    } 
}
Run Code Online (Sandbox Code Playgroud)