在 0 到 2.0 范围内将 UISlider 增加 0.2 [重复]

Posted

技术标签:

【中文标题】在 0 到 2.0 范围内将 UISlider 增加 0.2 [重复]【英文标题】:Increment UISlider by 0.2 in range 0 to 2.0 [duplicate] 【发布时间】:2012-10-17 05:21:19 【问题描述】:

可能重复:Increment UISlider by 1 in range 1 to 100

我是 iPhone 新手,

如何让我的 UISlider 以 0.2 为增量从 0 变为 2?

slider = [[UISlider alloc] init];
[slider addTarget:self action:@selector(sliderChange:) forControlEvents:UIControlEventValueChanged];
[slider setBackgroundColor:[UIColor clearColor]];
slider.minimumValue = 0.0;
slider.maximumValue = 2.0;
slider.continuous = YES;
slider.value = 0.0;

- (IBAction)sliderChange:(id)sender
    NSLog(@"slider.value=%f",slider.value);

当我滑动我的日志显示时...

slider.value = 1.000000
slider.value = 1.123440
slider.value = 1.234550
slider.value = 1.345670
slider.value = 1.567890
.
.
.

我希望滑块值为 0.0 、 0.2 、 0.4 等等...

如有任何帮助,将不胜感激。

【问题讨论】:

说真的??你已经问过同样的问题了…… 【参考方案1】:

在您的 sliderChanged 方法中,从您的滑块中获取值,将其四舍五入到最接近的 0.2,然后将您的滑块的值设置为这个四舍五入的值。这会将滑块滑块捕捉到 0.2 个增量。

你可以这样舍入:

float roundedValue = roundf(value / 0.2f) * 0.2f;

(感谢@koki)

【讨论】:

如何四舍五入到最接近的0.2? 这是你的实际问题,否则这是一个完全重复的问题? float roundedValue = roundf(value / 0.2f) * 0.2f; @jrturton 你欢迎 :)

以上是关于在 0 到 2.0 范围内将 UISlider 增加 0.2 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

我应该如何在核心数据中存储从 UISlider 读取的百分比值?

tvOS - 替换 UISlider

使用 CiGaussianBlur 模糊图像的 UISlider 也会旋转图像

核心图像过滤器 iOS UISlider

UIProgressView和UISlider

具有不同分段级别的 UISlider