限滑UISlider过去的某个点(Limit sliding UISlider past certa

2019-09-01 01:32发布

让我们假设一个有一个UISlider到我设置一定的价值。 滑动手柄然后移动到该值,符合市场预期。

现在我想,让用户滑动滑块的手柄来回,但没有设置的值UISlider要少,比我分配给它编程。

因此,例如我有一个UISlider为0的最小值和100最大价值,我将其值设置为50。我不希望用户“lefter”比50,但是,它的“右”滑动我希望让用户滑动手柄来回。

如何实现这种行为中的OBJ-C?

Answer 1:

你应该首先确认更新事件连续发送:

mySlider.continuous = YES;

你也可以这样做,在你的情节提要/笔尖(由@fDmitry作为mentionned,这是IB默认状态)。

然后,你有你的滑块链接到一个IBAction你的.h文件中(创建按ctrl拖动从IB到你的代码的链接),并将其分配给您的滑块的“数值改变”事件。 这将创建一个像这样的方法:

-(IBAction)sliderValueChanged:(id)sender;

实现这样的说法:

- (IBAction)sliderValueChanged:(id)sender {

    float maxValue = 50.0f;

    if ([(UISlider*)sender value] > maxValue) {
        [(UISlider*)sender setValue:maxValue];
    }
}


Answer 2:

这一个是很容易的,其实:)

创建行动并将其指定为选择器UISlider的行动的valueChanged。 内部的方法,进行一个简单的检查:如果滑块的值小于50,将其设置为50。

如果您需要任何进一步的帮助,我可以在我的课后写一些示例代码。 希望能帮助到你!



Answer 3:

你的滑块连接valueChanged:动作。 你应该实现它是这样的:

- (void)mySliderValueChanged:(UISlider *)slider
{
  CGFloat myMinValue = 50.0f; // should be a global variable

  if(slider.value < myMinValue)
  {
    slider.value = myMinValue;
  }
}


文章来源: Limit sliding UISlider past certain point