我尝试在按钮按下操作中更新/设置我的滑块值。
滑块的值实际上发生了变化,但刻度盘没有移动或更新以表示新值。我的滑块值来自于像这样的一个Observable对象:
滑块的默认值设置为50,即中间位置。有没有办法将滑块的值设置为储存在我的数组中的值并进行更新?实际输出滑块的值给了我正确的结果,但为什么滑块不移动/更新呢?
谢谢。
Button(action: {
if self.questionNum == 1{
print("End")
}else{
self.questionNum -= 1
//This line here is where the value is being set.
self.slider.value = self.model.answers[self.questionNum - 1] as! Double
print(self.model.answers)
print(self.slider.value)
self.questionOpacity = 0
self.model.currentQuestion = self.model.questions[self.questionNum - 1]
DispatchQueue.main.asyncAfter(deadline: .now() + 0.25) {
withAnimation(){
self.questionOpacity = 1
}
}
}
}) {
Text("Previous Question")
.font(.system(size: 25))
.fontWeight(.medium)
.foregroundColor(Color.white)
.multilineTextAlignment(.center)
}
滑块的值实际上发生了变化,但刻度盘没有移动或更新以表示新值。我的滑块值来自于像这样的一个Observable对象:
class SliderVal: ObservableObject {
var didChange = PassthroughSubject<SliderVal,Never>()
var value = 50.0 {
willSet {
print(self.value)
}
}
滑块的默认值设置为50,即中间位置。有没有办法将滑块的值设置为储存在我的数组中的值并进行更新?实际输出滑块的值给了我正确的结果,但为什么滑块不移动/更新呢?
谢谢。
willSet
/didSet
,而是直接绑定到ObservedObject
,例如$slider.value
。 - Asperi