故事 这周,我的同事问了我一个问题:在 SwiftUI 中怎么观察用户对 Picker 的选择行为? 这是一个来自真实业务的问题,所以我觉得值得我花费时间去解决它。 范例代码如下所示,然后我的同事想观察用户对 Picker 候选项的选择行为。 分析 但是,「观察」本身的意义可能会随着上下文变动而变动: 它可以表示用户在 Picker 上放下手指的那一刻。 它可以表示用户在 Picker 上抬起手指的那一刻。 它可以表示 Picker 对 $selection 进行值变更的那一刻。 上述每一项都将导致不同的最终解决方案。 因为 SwiftUI 控件可以使用 style…
介绍 最近,我的一位同事试图将引用语义模型用 ObservableObject 和 @StateObject 迁移到 SwiftUI。由于网上有很多关于用这种方式来迁移引用语义模型到 SwiftUI 的例子,在这篇文章中我不打算重点讨论这种方法的一般情况,而是想重点讨论在我和我的同事寻找答案使其代码正常工作的过程中发现的更有价值的三个话题。这些话题是: 在 SwiftUI 中真相源 (Source of Truth) 是什么? 在 SwiftUI…