限制滑动UISlider超过某一点

Ser*_*yov 4 xcode cocoa-touch objective-c uislider ios

让我们假设有一个UISlider我设置了一定值.然后滑块手柄移动到该值,如预期的那样.

现在我想让用户前后滑动滑块的手柄,但是不要将其值设置UISlider为小于我以编程方式分配给它的值.

所以例如我有一个UISlider最小值为0,最大值为100,我将其值设置为50.我不希望用户滑动"lefter"而不是50但是在它的"右侧"我想让用户来回滑动手柄.

你如何在Obj-C中实现这种行为?

rdu*_*and 12

您应该首先确保连续发送更新事件:

mySlider.continuous = YES;
Run Code Online (Sandbox Code Playgroud)

您也可以在storyboard/nib中执行此操作(由@fDmitry提及,这是IB中的默认状态).

然后,您必须将滑块链接到IBAction.h文件中(通过从IB拖动到代码来创建链接),并将其分配给滑块的"值已更改"事件.这将创建一个这样的方法:

-(IBAction)sliderValueChanged:(id)sender;
Run Code Online (Sandbox Code Playgroud)

以这种方式实施:

- (IBAction)sliderValueChanged:(id)sender {

    float maxValue = 50.0f;

    if ([(UISlider*)sender value] > maxValue) {
        [(UISlider*)sender setValue:maxValue];
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 他们是.我添加它以防万一.也许他试图在搜索解决方案时到处点击,并意外禁用它:p (3认同)