【问题标题】:SwiftUI updating class sub variablesSwiftUI 更新类子变量
【发布时间】:2021-03-01 05:07:22
【问题描述】:

我想要一种使用单个状态变量来更新 UI 状态的简单方法。 假设我有一个类 Position 实例变量 x 和 y。 想象一下,我有一个看起来像这样的 UI 视图......

@State var position: Position
var body: some View{
    VStack{
        Text("x: \(position.x)")
        Text("y: \(position.y)")
    }
}

我想维护一个 Position 的状态变量,它可以更新 x 和 y,如上所示。但是,您可能知道,如果 UI 视图上的 x 和 y 值在此位置变量内发生更改,则此代码不会更新它们。

有没有人知道每次 x 和 y 更改时更新此视图的方法,而不必为 x 和 y 设置单独的状态变量,或者这是唯一的方法吗?

【问题讨论】:

    标签: swift swiftui


    【解决方案1】:

    有没有人知道每次 x 和 y 变化时更新此视图的方法,而不必为 x 和 y 设置单独的状态变量,或者这是唯一的方法吗?

    Position 应该是 struct 才能有你需要的行为,比如

    struct Position {
      var x: CGFloat
      var y: CGFloat
    }
    

    在这种情况下,只要x/y 中的任何一个更改了单个@State var position,就会更新视图。

    【讨论】:

      猜你喜欢
      • 2021-09-07
      • 1970-01-01
      • 1970-01-01
      • 2021-10-14
      • 2021-08-06
      • 2020-05-14
      • 2023-04-08
      • 2020-02-24
      • 1970-01-01
      相关资源
      最近更新 更多