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

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

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

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

谢谢

【问题讨论】:

    标签: ios uikit uislider


    【解决方案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或者输出值。

      【讨论】:

        猜你喜欢
        • 2020-04-29
        • 2012-02-04
        • 2011-12-16
        • 1970-01-01
        • 2010-10-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多