lav*_*lle 4 iphone logarithm objective-c uislider
有没有办法让iPhone应用程序中的UISlider输出的值以指数方式增加?例如,第一个第三个产生1-10,第二个产生11到100,最后一个产生101到1000?
Ben*_*oît 12
您可以从滑块计算自己的log/exp值,并显示该值!
但是如果你想要一个1到1000之间的值,你可以将滑块的min设置为0,max设置为3并使10的幂:
powf(10.0,mySlider.value)
Run Code Online (Sandbox Code Playgroud)
小智 11
我从这篇文章中导出了这些Objective C方法:Logarithmic slider
-(double) wpmForSliderValue: (double) sliderValue {
// Input will be between min and max
static double min = WPM_SLIDER_MIN;
static double max = WPM_SLIDER_MAX;
// Output will be between minv and maxv
double minv = log(WPM_SCALE_MIN);
double maxv = log(WPM_SCALE_MAX);
// Adjustment factor
double scale = (maxv - minv) / (max - min);
return exp(minv + (scale * (sliderValue - min)));
}
-(double) sliderValueForWpm: (double) wpm {
// Output will be between min and max
static double min = WPM_SLIDER_MIN;
static double max = WPM_SLIDER_MAX;
// Input will be between minv and maxv
double minv = log(WPM_SCALE_MIN);
double maxv = log(WPM_SCALE_MAX);
// Adjustment factor
double scale = (maxv - minv) / (max - min);
return (((log(wpm) - minv) / scale) + min);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4374 次 |
| 最近记录: |