UISlider递增

时间:2010-03-16 21:37:07

标签: iphone uislider

我有一个UISlider,幻灯片的范围从0.0到1.0。

开箱即用,滑块允许用户使用非常多的小数位数进行滑动,但我只希望我的用户能够在滑块的每个“勾号”上增加/减少.001。

这可以设置吗?

谢谢!

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分: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];
}

答案 2 :(得分: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);
}