UISlider分为范围

时间:2016-01-29 06:14:58

标签: ios uikit uislider

我想做这样的事情。我有一个UISlider,其最小值为0,最大值应为1000.我想将此范围分为10个部分。像这样。

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

当用户从0拖动滑块时,它应该直接停在100位置,而不是在0和100之间停止,当他从100拖动它应该直接跳到200不应该同样停在100和200之间。我怎么能这样做?请帮帮我。

由于

3 个答案:

答案 0 :(得分:3)

你必须这样做:

slider.maximumValue = numberOfSteps;

slider.minimumValue = 0;

slider.continuous = NO;

设置

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

[slider setValue:index animated:NO];

答案 1 :(得分:1)

好吧,只需指定滑块范围0 ... 10并将更改后的值乘以100

答案 2 :(得分:0)

前一天我和你一样有同样的需求。使用默认的UISlider,您只能递增+1或-1。因此,如果您希望增加其他值,则必须以编程方式执行此操作。

在你的情况下,试试这个:

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

它对我有用,试一试:)

对于其他增量值,请在此处查看公式:

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

然后NSLog或输出值。