2012-05-30 114 views
2

是否有任何优选的方法让UISliders值以对数形式而非线性变化?因此,例如,该值在滑块的前半部分从0变为25,在后半部分从25变为100。对数UISlider

回答

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; 
}