如何让我的UISlider
从1-100
开始以5
为增量
发布于 2015-11-17 04:08:10
在Swift中,一个稍微优雅一点的解决方案可能是这样
let step: Float = 5
@IBAction func sliderValueChanged(sender: UISlider) {
let roundedValue = round(sender.value / step) * step
sender.value = roundedValue
// Do something else with the value
}
这样你就可以得到步骤5。你可以在我的post中阅读更多关于设置的信息。
发布于 2015-07-21 01:29:35
对于任何正在寻找Swift语法的人来说...
override func viewDidLoad() {
super.viewDidLoad()
mySlider.addTarget(self, action: "sliderValueDidChange:", forControlEvents: .ValueChanged)
}
func sliderValueDidChange(sender:UISlider!)
{
//Set value to the nearest 5...
print((Float)((Int)((sender.value + 2.5) / 5) * 5))
sender.setValue((Float)((Int)((sender.value + 2.5) / 5) * 5), animated: false)
}
或者,只需使用Assistant Editor创建一个Action函数(我最终也是这么做的)……
@IBAction func mySliderValueChanged(sender: UISlider) {
//Set value to the nearest int
sender.setValue(Float(roundf(sender.value)), animated: false)
}
发布于 2017-04-13 20:31:32
在swift 3中,使用增量为+/- 7的滑块:
@IBOutlet weak var sldComponent: UISlider!
..。
sldComponent.addTarget(self, action: #selector(_sldComponentChangedValue),for: .valueChanged)
..。
func _sldComponentChangedValue(sender: UISlider!) {
self.sldComponent.setValue((round(sender.value / 7) * 7), animated: false)
print("\(sender.value)")
}
https://stackoverflow.com/questions/2519460
复制相似问题