1

我有一个 UISlider,它的滑动范围从 0.0 到 1.0。

开箱即用,滑块允许用户以非常多的小数位数滑动,但我只希望我的用户能够为滑块的每个“滴答”向上或向下增加/减少 0.001。

这可以设置吗?

谢谢!

4

3 回答 3

3

这个滑块有多大?即使你在横向模式下它跨越了屏幕的整个宽度,0.001 的变化也只有大约半个像素。听起来您只需要将滑块的值(在幕后)四舍五入到您所追求的精度。

于 2010-03-16T21:51:42.597 回答
1

一些非常简单的东西怎么样,例如:一个 3 选择滑块(值 {0, 1, 2}),连接一个 IBAction 和一个 IBOutlet。

-(float)roundValue:(float)value{

    if(value <=   0.5) return 0;
    if(value <=   1.5) return 1;
    return 2;
}

-(IBAction)mySliderChanged:(id)sender {

    float value = mySliderOutlet.value; // retrieve value via IBOutlet
    value = [self roundValue:value];

    // Update the slider to 'snap' in final position
    [[self mySliderOutlet] setValue:value animated:YES];
}
于 2011-02-05T03:33:56.250 回答
0

这应该可以解决问题:

- (void) getSliderValue:(UISlider *)paramSender{
    float increment = 0.001;
    float newValue = paramSender.value /increment;
    paramSender.value = floor(newValue) * increment;
    NSLog(@"Current value of slider is %f", paramSender.value);
}
于 2014-09-05T13:59:06.163 回答