【发布时间】:2019-11-23 08:41:47
【问题描述】:
这个问题是SwiftUI: How to get continuous updates from Slider的后续问题
基本上我有一个滑块,它是许多滑块之一。每个 on 都会更改模型类上的一个参数,因此我传入一个绑定,该绑定表示模型类上的特定属性。这是因为每次滑块移动时模型都会获取新值。
struct AspectSlider: View {
private var value: Binding<Double>
init(value: Binding<Double>, hintKey: String) {
self.value = value
}
var body: some View {
VStack(alignment: .trailing) {
Text("\(self.value.value)")
Slider(value: Binding<Double>(getValue: { self.value.value }, setValue: { self.value.value = $0 }),
from: 0.0, through: 4.0, by: 0.5)
}
}
}
无法正常工作的是Text("\(self.value.value)") 显示,它旨在显示滑块的当前值。当 Binding<Double> 值更改时,它不会更新。
相反,它仅在显示屏上的其他内容触发显示屏刷新时才会更新。在我的例子中,代表模型计算结果的标签(当滑块改变它的值时,它不一定会改变)。
我已确认模型正在发生更改,因此绑定正在更新。我的问题是为什么 Text 标签没有立即更新。
【问题讨论】:
-
它对我有用。你能告诉我们你是如何实例化 AspectSlider 视图的吗?
标签: swiftui