如何在单个@IBAction 中获取多个UISlider 的值?
How to get value of multiple UISlider in a single @IBAction?
我有 5 个滑块引用相同的@IBAction func sliderDidSlide()。每个 UISlider 都有一个标记 0...4。我如何获得每个滑块的值?我想使用 sender.tag 来获取哪个滑块,然后使用 .value 来获取它的值。我试过 sender.tag.value,但没有用。
下面是我想做的,但它不起作用。我试过搜索但找不到解决方案。我知道我可以有多个@IBAction,但如果可能的话,我想保存代码并使用标签将它们全部放在同一个@IBAction 中。任何帮助将不胜感激。谢谢。
@IBAction func sliderDidSlide(_ sender: UISlider) {
let maxPrice = 10000
switch sender.tag {
case 0:
let price = maxPrice * sender.tag.value // this doesn't work
label1.text = "\(price)"
case 1:
// same idea as case 0
case 2:
<#code#>
case 3:
<#code#>
case 4:
<#code#>
default:
break
}
}
只要其中一个滑块的值发生变化,就会调用 sliderDidSlide
。在每个调用中,相应的 UISlider
将被传递到 sender
参数标签中。
您已经通过 switch sender.tag {
区分了滑块。 sender.tag.value
没有意义,也不会编译,因为 tag
没有名为 value
.
的 属性
切换标签后,您可以直接访问sender.value
。
let price = maxPrice * sender.value /// directly access value
switch sender.tag {
case 0:
label1.text = "\(price)"
case 1:
label2.text = "\(price)
case 2:
label3.text = "\(price)
case 3:
label4.text = "\(price)
case 4:
label5.text = "\(price)
default:
break
}
我有 5 个滑块引用相同的@IBAction func sliderDidSlide()。每个 UISlider 都有一个标记 0...4。我如何获得每个滑块的值?我想使用 sender.tag 来获取哪个滑块,然后使用 .value 来获取它的值。我试过 sender.tag.value,但没有用。
下面是我想做的,但它不起作用。我试过搜索但找不到解决方案。我知道我可以有多个@IBAction,但如果可能的话,我想保存代码并使用标签将它们全部放在同一个@IBAction 中。任何帮助将不胜感激。谢谢。
@IBAction func sliderDidSlide(_ sender: UISlider) {
let maxPrice = 10000
switch sender.tag {
case 0:
let price = maxPrice * sender.tag.value // this doesn't work
label1.text = "\(price)"
case 1:
// same idea as case 0
case 2:
<#code#>
case 3:
<#code#>
case 4:
<#code#>
default:
break
}
}
sliderDidSlide
。在每个调用中,相应的 UISlider
将被传递到 sender
参数标签中。
您已经通过 switch sender.tag {
区分了滑块。 sender.tag.value
没有意义,也不会编译,因为 tag
没有名为 value
.
切换标签后,您可以直接访问sender.value
。
let price = maxPrice * sender.value /// directly access value
switch sender.tag {
case 0:
label1.text = "\(price)"
case 1:
label2.text = "\(price)
case 2:
label3.text = "\(price)
case 3:
label4.text = "\(price)
case 4:
label5.text = "\(price)
default:
break
}