【发布时间】:2023-03-10 12:15:01
【问题描述】:
我目前正在构建一个小型单视图应用程序来帮助学习更多 SwiftUI。
该应用程序是一个简单的应用程序来计算比率值。我目前有 4 个主要变量,比率的左侧和右侧,以及将按比率计算的第一个和第二个值。
最初,我将这些中的每一个都存储为 @State 属性:
@State var leftSide = Double()
@State var rightSide = Double()
@State var value1 = Double()
@State var value2 = Double()
在应用程序中,有 4 个滑块允许每个变量相互独立地更改。我现在要允许发生的是更改变量value1 也将根据用户设置的比率更新value2。为了实现这一点,我相信我需要使用组合但是我对框架没有太多经验。
首先,我将变量移至 ObservableObject 类:
final class UserData: ObservableObject {
@Published var leftSide = Double()
@Published var rightSide = Double()
@Published var value1 = Double()
@Published var value2 = Double()
}
我用@ObservedObject var userData = UserData() 更新了我的主视图,这样我就可以访问我视图中的变量,这工作正常
现在我想在其他变量发生变化时更新 value1 和 value2 变量。从我所做的阅读中,我认为我需要使用订阅者,但我找不到任何关于如何使用他们的@Published 属性进行设置的信息。我是否以正确的方式解决了这个问题,还是有更好的方法来做到这一点?
【问题讨论】:
-
我正在研究使用 didSet,我认为这会起作用