user1960169
user1960169

Reputation: 3653

UISlider dividing into range

I want to do something like this. I have a UISlider its minimum value shuld be 0 and the maximum value should be 1000.And I want to divide this range into 10 parts. Like this.

0-----100----200----300----400

When user drag the slider from 0 it should directly stop at 100 position without stopping inbetween 0 and 100 when he drag from 100 it should directly jump into 200 should not stop inbetween 100 and 200 likewise.How can I do this? please help me.

Thanks

Upvotes: 1

Views: 1010

Answers (3)

Wei
Wei

Reputation: 1

I had the same need just like you the day before. With default UISlider, you can only increment either +1 or -1. Hence, if you are looking to have a increment in other values, you have to do it programmatically.

In your case, try this:

- (IBAction)[yourUISlider]:(id)sender {
      [[yourUISliderProperty] setValue:((int)(( [yourUISlider].value + 50) / 100) * 100) animated:NO];
      NSLog(@"%d", [yourUISlider].value );
  }

It worked for me, try it out :)

And for other increment values, check out the formula here:

((int)(( [yourSlider] + [yourIncrement/2] ) / [yourIncrement]) *[yourIncrement])

Then NSLog or output the value.

Upvotes: 0

Andrey Chernukha
Andrey Chernukha

Reputation: 21808

Well, just assign your slider range 0...10 and multiply changed value by 100

Upvotes: 1

Reshmi Majumder
Reshmi Majumder

Reputation: 961

You have to do this:

slider.maximumValue = numberOfSteps;

slider.minimumValue = 0;

slider.continuous = NO;

For setting

NSUInteger index = (NSUInteger)(slider_value + 0.5);

[slider setValue:index animated:NO];

Upvotes: 3

Related Questions