Search code examples
iosswiftuislider

How to make UISlider have discrete intervals? For example intervals of 5000


How do I round or make intervals of 5000 on a ui slider in swift?

@IBAction func incomeSliderChanged(sender: UISlider) {
    var incomeValue = Double(sender.value)
    currentIncomeLabel.text = ("$\(incomeValue) /yr")
}

Solution

  • You can use the following code. You can also make the slider discrete using the 3rd line(with comment).

    @IBAction func incomeSliderChanged(sender: UISlider) {
        var interval = 5000
        var incomeValue = Int(sender.value / Float(interval) ) * interval
        sender.value = Float(incomeValue) // remove this if you don't want discrete slider.
        currentIncomeLabel.text = ("$\(incomeValue) /yr")
    }