对数UISlider

时间:2012-05-30 00:38:25

标签: cocoa-touch uislider

是否有任何首选方法可以使UISliders值以对数方式而不是线性方式进行更改?因此,例如,值在滑块的前半部分从0变为25,在后半部分从25变为100。

1 个答案:

答案 0 :(得分:0)

不幸的是没有。但是您可以将滑块提供的float值转换为您需要的数字。这是一个例子。

float interpretedValue;
if (sliderValue < 0.5) {
    interpretedValue = sliderValue * 25 / 0.5;
} else {
    interpretedValue = (sliderValue - 0.5)*(100 - 25)/0.5 + 25;
}

我已经在方程式中留下了一些常量,因此您可以更轻松地进行调整。但为了获得最佳性能,我会简化它们。

编辑,2013年1月17日:

我被要求提供一组方程式,可以在给定解释值的情况下找到滑块值。他们在这里:

float sliderValue;
if (interpretedValue < 25) {
    sliderValue = interpretedValue * 0.5 / 25;
} else {
    sliderValue = (interpretedValue - 25) * 0.5 / (100 - 25) + 0.5;
}