具有不同分段级别的 UISlider

Posted

技术标签:

【中文标题】具有不同分段级别的 UISlider【英文标题】:UISlider with different segmentation levels 【发布时间】:2013-01-18 00:34:35 【问题描述】:

我想创建一个具有不同灵敏度级别的范围滑块。 它需要根据用户选择的范围内的特定部分采取不同的行动。 即 - 如果我的滑块的范围是 1-100,000,则将范围设置为较低的值将跳 1,将范围设置为较高的值将跳 100。

eBay 在他们的网站中实现了这种滑块(注意左侧的价格范围滑块):http://www.ebay.com/sch/i.html?LH_FS=0&_sacat=0&_from=R40&_nkw=car&_mPrRngCbx=1&_udlo=490&_udhi=21%2C000%2C000

有什么想法吗?

【问题讨论】:

【参考方案1】:

将滑块的范围设置为 0 - 5。然后将所需的值计算为 10 ^ sliderValue。这基本上给了你一个对数刻度。

如果您想要离散但不同的线性范围,那么 kabram 的答案可能更符合您的要求。

更新:

将滑块的范围设置为 0.0 到 5.0。随着滑块值的变化,计算出来的值变成:

double newValue = pow(10, slider.value);

其中sliderUISliderpow 是标准 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

...

你明白了吗?

【讨论】:

以上是关于具有不同分段级别的 UISlider的主要内容,如果未能解决你的问题,请参考以下文章

为啥使用 cv::line 函数绘制的不同线条具有不同的透明度 (alpha) 级别?

级别选择菜单具有不同级别,类似于剪绳游戏

连接两个具有不同索引级别数的 MultiIndex DataFrame

在 Pandas Python 中聚合具有不同细节级别的数据

具有不同级别日期维度数据作为日期维度键的事实表

Python Pandas - 如何在具有不同级别数的索引上加入 DataFrames?