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 划分范围的主要内容,如果未能解决你的问题,请参考以下文章