IOS UISlider non continuos approximate value

2019-02-26 16:45发布

问题:

I have a UISlider with value between 10 and 100. I works very well.

Except I'd like to be able to increase the values by 5 rather than 1 by 1.

Now, if I move the slide the values are increasing linear: 10, 11, 12, 13, ....

I want to be able when moving the slider the values to increase by 5: 10, 15, 20, 25, ....

Is this possible?

Many thanks!

回答1:

Here's some code for you, base on a stackoverflow post somewhere...

- (IBAction)terrainValueChanged:(id)sender {

    float newStep = roundf((terrainSlider.value) / self.stepValue);
    self.terrainSlider.value = newStep * self.stepValue;
    int intValue = self.terrainSlider.value;
    terrainRating = intValue;

}

Initialize with this:

    stepValue = 1;
    self.terrainStep = (self.terrainSlider.value) / self.terrainStep;


回答2:

use this code for increasing the slide value by 5

sliderPosition = (int)(round(mySlider.value/5)*5); 


标签: ios uislider