2012-05-30 49 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; 
}