Ios 如何以编程方式调用UISlider';s.valueChanged事件
当我实际触摸并拖动滑块时,其Ios 如何以编程方式调用UISlider';s.valueChanged事件,ios,swift,uislider,Ios,Swift,Uislider,当我实际触摸并拖动滑块时,其.valueChanged事件工作正常: slider.addTarget(self, action: #selector(sliderValueChanged(sender:)), for: .valueChanged @objc func sliderValueChanged(sender: UISlider) { print(sender.value) } 我有另一个移动的视图,就像地图上的汽车。当汽车水平移动时,返回一个值,该值使滑块实际移动,这也
.valueChanged
事件工作正常:
slider.addTarget(self, action: #selector(sliderValueChanged(sender:)), for: .valueChanged
@objc func sliderValueChanged(sender: UISlider) {
print(sender.value)
}
我有另一个移动的视图,就像地图上的汽车。当汽车水平移动时,返回一个值,该值使滑块实际移动,这也可以正常工作。但由于我没有实际拖动滑块,因此它的.valueChanged
不会被调用
当不接触滑块时,如何以编程方式调用事件
func carTraveled(distance: Double) {
slider.value = Float(distance) // slider does move but event is never called
}
只需调用您的
操作
选择器:
func carTraveled(distance: Double) {
slider.value = Float(distance)
sliderValueChanged(sender: slider)
}
或者,如果滑块有许多目标动作对,或者您不知道该时间点的动作
选择器方法,则可以执行以下操作:
啊,我忘了这件事。我总是把它用在按钮上,但我从来没有把它用在其他任何东西上。好主意谢谢
func carTraveled(distance: Double) {
slider.value = Float(distance)
slider.sendActions(for: .valueChanged)
}