如何阻止UISlider的运动?

时间:2014-06-26 12:14:58

标签: ios objective-c uislider

我希望在达到特定值时停止UISlider的动作。在那之后,它不应该在这里和那里移动。我的意思是我想在达到特定值后停止userInteraction的{​​{1}}。我该怎么办?

我用过

UISlider

myslider.userInteractionEnable=NO; 

但是,我仍然可以移动我的滑块。请帮助。

3 个答案:

答案 0 :(得分:0)

也许您可以将禁用设置为YES来实现目标,但使用最小值和最大值可能更好,而不是在用户更改其值时阻止用户与控件交互。

答案 1 :(得分:0)

您可以通过以下代码执行此操作:

[mySlider addTarget:self action:@selector(modifySliderValue) forControlEvents: UIControlEventAllEvents];

- (void)modifySliderValue{
if(mySlider.value > 60) {
    mySlider.value = 60;
}

}

答案 2 :(得分:0)

您可以将操作添加到valueChanged事件,如下所示:

[mySlider addTarget:self action:@selector(sliderValueChanged:) forControlEvents:UIControlEventValueChanged];

然后实现这样的方法:

-(void)sliderValueChanged:(UISlider*)sender
{
    if (sender.value >= YOUR_MAX_VALUE)
    {
        sender.userInteractionEnabled = NO;
    }
}

通过userInteraction属性到NO,您应该能够禁用其上的触摸事件。否则,您可能会将其他代码再次设置为YES