【发布时间】:2016-01-29 06:14:58
【问题描述】:
我想做这样的事情。我有一个UISlider,它的最小值应该是 0,最大值应该是 1000。我想把这个范围分成 10 个部分。像这样。
0-----100----200----300----400
当用户从 0 拖动滑块时,它应该直接停在 100 的位置,而不会停在 0 和 100 之间。当他从 100 拖动时,它应该直接跳到 200,也不应该停在 100 和 200 之间。我该怎么做?请帮帮我。
谢谢
【问题讨论】:
我想做这样的事情。我有一个UISlider,它的最小值应该是 0,最大值应该是 1000。我想把这个范围分成 10 个部分。像这样。
0-----100----200----300----400
当用户从 0 拖动滑块时,它应该直接停在 100 的位置,而不会停在 0 和 100 之间。当他从 100 拖动时,它应该直接跳到 200,也不应该停在 100 和 200 之间。我该怎么做?请帮帮我。
谢谢
【问题讨论】:
你必须这样做:
slider.maximumValue = numberOfSteps;
slider.minimumValue = 0;
slider.continuous = NO;
用于设置
NSUInteger 索引 = (NSUInteger)(slider_value + 0.5);
[滑块设置值:索引动画:否];
【讨论】:
好吧,只需将滑块范围指定为 0...10 并将更改的值乘以 100
【讨论】:
我和你前一天有同样的需要。使用默认 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或者输出值。
【讨论】: