UISlider 划分范围

Posted

技术标签:

【中文标题】UISlider 划分范围【英文标题】:UISlider dividing into range 【发布时间】:2016-01-29 06:14:58 【问题描述】:

我想做这样的事情。我有一个UISlider,它的最小值应该是 0,最大值应该是 1000。我想把这个范围分成 10 个部分。像这样。

0-----100----200----300----400

当用户从 0 拖动滑块时,它应该直接停在 100 的位置,而不会停在 0 和 100 之间。当他从 100 拖动时,它应该直接跳到 200,也不应该停在 100 和 200 之间。我该怎么做?请帮帮我。

谢谢

【问题讨论】:

【参考方案1】:

你必须这样做:

slider.maximumValue = numberOfSteps;

slider.minimumValue = 0;

slider.continuous = NO;

用于设置

NSUInteger 索引 = (NSUInteger)(slider_value + 0.5);

[滑块设置值:索引动画:否];

【讨论】:

感谢您的回答。我有一个小问题。当我将它从 0 拖动到***别时。没有一步一步走。直接去最后一个位置就行了 那你没有正确设置索引。假设你要从 0 index = (NSUInteger)(10+0.5) 得到 10 个值 slider.maximumValue = numberOfsteps 不是滑块的最大值 哇 Reshmi,哇,ki dile 大师!!【参考方案2】:

好吧,只需将滑块范围指定为 0...10 并将更改的值乘以 100

【讨论】:

【参考方案3】:

我和你前一天有同样的需要。使用默认 UISlider,您只能增加 +1 或 -1。因此,如果您希望增加其他值,则必须以编程方式进行。

在你的情况下,试试这个:

- (IBAction)[yourUISlider]:(id)sender 
      [[yourUISliderProperty] setValue:((int)(( [yourUISlider].value + 50) / 100) * 100) animated:NO];
      NSLog(@"%d", [yourUISlider].value );
  

它对我有用,试试看:)

对于其他增量值,请查看此处的公式:

((int)(( [yourSlider] + [yourIncrement/2] ) / [yourIncrement]) *[yourIncrement])

然后NSLog或者输出值。

【讨论】:

以上是关于UISlider 划分范围的主要内容,如果未能解决你的问题,请参考以下文章

具有不同分段级别的 UISlider

UISlider 具有不均匀的步骤。

UIProgressView和UISlider

UISlider的基本使用方法

使用 CiGaussianBlur 模糊图像的 UISlider 也会旋转图像

tvOS - 替换 UISlider