我有一个 UISlider,它的滑动范围从 0.0 到 1.0。
开箱即用,滑块允许用户以非常多的小数位数滑动,但我只希望我的用户能够为滑块的每个“滴答”向上或向下增加/减少 0.001。
这可以设置吗?
谢谢!
这个滑块有多大?即使你在横向模式下它跨越了屏幕的整个宽度,0.001 的变化也只有大约半个像素。听起来您只需要将滑块的值(在幕后)四舍五入到您所追求的精度。
一些非常简单的东西怎么样,例如:一个 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];
}
这应该可以解决问题:
- (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);
}