iOS-滑块值更改时设置UILabel Swift

问题描述

我想在uiSlider更改时设置标签,但是当我在valueChanged中设置标签时,屏幕冻结或父视图消失。

    @IBAction func changedSliderValue(_ sender: UiSlider) {
    let value = Int(sliderExtraRepeat.value)
    if lastSliderValue != value {
        self.labelExtraRepeat.text = String(value) + " tekrar daha gelirdi."
        print(String(format: "%.0f",self.sliderExtraRepeat.value))
        lastSliderValue = value
    }
}

当我在带有标签的行上注释时,滑块可以平滑移动。尽管我奋斗了几个小时,但我仍然找不到原因。

解决方法

首先,是否有必要具有全局变量'lastSliderValue'? 如果没有,建议整体删除全局变量。

尝试一下。

list3 = [a + b for a,b in zip(list1,list2)]
,

您是否尝试过在主线程上更新UI?像这样:-

@IBAction func changedSliderValue(_ sender: UISlider) {
  let value = Int(sliderExtraRepeat.value)
  if lastSliderValue != value {

      DispatchQueue.main.async{
        self.labelExtraRepeat.text = String(value) + " tekrar daha gelirdi."
      }
      
      print(String(format: "%.0f",self.sliderExtraRepeat.value))
      lastSliderValue = value
  }
}