IOS - 当滑块值改变时设置 UILabel Swift
Posted
技术标签:
【中文标题】IOS - 当滑块值改变时设置 UILabel Swift【英文标题】:IOS - When Slider Value Changed Set UILabel Swift 【发布时间】:2020-10-25 12:04:25 【问题描述】:我想在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
当我对带有标签的行进行注释时,滑块可以平滑移动。尽管我挣扎了几个小时,但我还是找不到原因。
【问题讨论】:
【参考方案1】:首先,是否完全有必要拥有一个全局变量“lastSliderValue”? 如果没有,建议将全局变量整体移除。
试试这个。
@IBAction func changedSliderValue(_ sender: UISlider)
// 1. make sure 'Int(sliderExtraRepeat.value)' does not return a value between 0 to 1
let value = Int(sliderExtraRepeat.value)
//2. try this instead.
labelExtraRepeat.text = String(value) + " tekrar daha gelirdi."
//3. make sure you set UISlider.isContinuous = true
【讨论】:
【参考方案2】:您是否尝试过在主线程上更新 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
【讨论】:
以上是关于IOS - 当滑块值改变时设置 UILabel Swift的主要内容,如果未能解决你的问题,请参考以下文章