首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当ViewModel中的位置值发生更改时更新SwiftUI视图

当ViewModel中的位置值发生更改时,SwiftUI视图可以通过使用属性包装器@ObservedObject@StateObject来实现自动更新。

@ObservedObject用于在视图中观察ViewModel对象的更改。当ViewModel中的位置值发生更改时,视图会自动重新计算并更新。

示例代码如下:

代码语言:txt
复制
class ViewModel: ObservableObject {
    @Published var position: CGPoint = .zero
}

struct ContentView: View {
    @ObservedObject var viewModel = ViewModel()

    var body: some View {
        Text("Position: \(viewModel.position.x), \(viewModel.position.y)")
    }
}

在上述示例中,ViewModel是一个ObservableObject,它具有一个@Published属性包装器用于位置值。ContentView是一个视图,它使用@ObservedObject属性包装器观察ViewModel对象的更改。当位置值发生更改时,视图会自动更新并显示新的位置。

这种方法适用于较小的视图层次结构。如果视图层次结构较大或复杂,可以考虑使用@StateObject属性包装器。@StateObject@ObservedObject类似,但它在整个视图层次结构中共享同一个ViewModel实例,以避免不必要的重复创建。

关于SwiftUI的更多信息和示例,请参考腾讯云的官方文档:SwiftUI - 腾讯云

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券