【问题标题】:UISlider with different segmentation levels具有不同分段级别的 UISlider
【发布时间】:2013-01-18 00:34:35
【问题描述】:
【问题讨论】:
标签:
ios
objective-c
uikit
uislider
【解决方案1】:
将滑块的范围设置为 0 - 5。然后将所需的值计算为 10 ^ sliderValue。这基本上给了你一个对数刻度。
如果您想要离散但不同的线性范围,那么 kabram 的答案可能更符合您的要求。
更新:
将滑块的范围设置为 0.0 到 5.0。随着滑块值的变化,计算出来的值变成:
double newValue = pow(10, slider.value);
其中slider 是UISlider。 pow 是标准 C 数学函数。这将为您提供以下信息:
slider.value newValue
0.0 1.0
1.0 10.0
2.0 100.0
3.0 1000.0
4.0 10000.0
5.0 100000.0
【解决方案2】:
既然滑块没有显示相关的值,为什么不简单地为值更改事件添加一个动作出口并计算适当的跳转。
例如,将滑块的范围设置为 1 到 100。假设您使用标签显示计算范围。
标签的值将是:
if slider.value < 10, then value = range
else if slider.value < 20 then value = 10 + (slider.value - 10) * 2 // increments of 2
else if slider.value < 50 then value = 10 + 10 * 2 + (slider.value - 20) * 5 // increments of 5
...
你明白了吗?