将标签调整为滑块值swift

我的swift项目中有一个滑块和标签。 在故事板上,我控制将我的滑块拖动到该页面的控制器类上,并创建了一个sockets和一个动作。 我控制拖动另一个标签作为sockets。 我正在尝试根据滑块的值更新标签。 我不知道我哪里出错了。

码:

@IBOutlet weak var slider: UISlider! @IBOutlet weak var sliderVal: UILabel! @IBAction func sliderValueChanged(sender: UISlider) { var currentValue = Int(sender.value) println("Slider changing to \(currentValue) ?") sliderVal.text = "\(currentValue) Km" } 

我可以在日志中看到正在调用sliderValueChanged函数,并且日志正在打印值,但标签的文本未更新。 我究竟做错了什么?

更新

我只是在我的登录屏幕上放了一个滑块对象和标签,并使用相同的方法和代码来更改标签文本并且它工作但它在我的标签栏控制器中不起作用。 这是否可以解决问题?

更新主队列中的滑块值

 @IBAction func sliderValueChanged(sender: UISlider) { var currentValue = Int(sender.value) println("Slider changing to \(currentValue) ?") dispatch_async(dispatch_get_main_queue(){ sliderVal.text = "\(currentValue) Km" }) } 

我希望这对你有所帮助。

尝试这个

  var currentValue = Int(slider.value) println("Slider changing to \(currentValue) ?") startTime.text = "\(currentValue) Km" 

如果你想以编程方式进行,这是一种方法。

 var slider: UISlider() var label: UILabel() func numberValueChanged(sender: UISlider) { slider.setValue(Float(Int(slider.value)), animated: true) updateLabels(slider.value) } fun updateLabels(nV: Float?) { if let v = nV { self.label.text = "\(v)" } } slider.addTarget (self, action: #selector(numberValueChanged) forControlEvents: UIControlEvents.ValueChanged ) 

希望这有用:)

Swift 3:为其UIControlEvents选择.allEvents。

 slider.addTarget(self, action: #selector(ViewController.updateKmsLabel(sender:)), for: .allEvents) // To use func updateKmsLabel(sender: UISlider!) { let value = Int(sender.value) DispatchQueue.main.async { self.kmsLabel.text = "\(value)" print("Slider value = \(value)") } } 

class ViewController:UIViewController {

 @IBOutlet weak var imgView: UIImageView! @IBOutlet weak var slideroutlet: UISlider! @IBOutlet weak var lblValue: UILabel! override func viewDidLoad() { super.viewDidLoad() } @IBAction func slider(_ sender: Any) { lblValue.text = String(slideroutlet.value) imgView.alpha = CGFloat(slideroutlet.value) }