如何限制UISlider滑动到某一点?

时间:2016-12-15 09:04:33

标签: swift xcode uislider bounds uiprogressview

我有UISlider&我设置了一定值的UIProgressView。然后滑块手柄移动到最大值,如预期的那样。

UISlider and UIProgressview Image

现在,我想让用户将滑块滑动到该红点。 (如图所示)

例如,我有UISlider,最大值为100,最小值为0.但是,我想将滑块的拇指图像设置为不跨越滑块内的某个点。 / H2>

我不希望用户滑动"更多左边"而不是那个进步色彩,而是在"右边"它,我想让用户来回滑动手柄,如图中的红点。 或者,换句话说:我希望UISlider能够“坚持”#34;到progressView的进度色调。如果进度为80 ..进度色调将显示最多80,滑块应该从该红点开始。

这种行为在Swift中是否可行?

解决方案: - 我只是通过故事板创建了一个视图,并在progressview和sliderview之间调整了一个图像视图,并将进度设置为' 1'和带有乘数约束的progressview的宽度约束。

2 个答案:

答案 0 :(得分:2)

你去吧。

 var prevValue : Float = 0.0

@IBAction func sliderChangeValue(_ slider: UISlider) {

    if slider.value < prevValue {

        slider.value = prevValue;
    }
    else{

        prevValue = slider.value;
    }
}

这项工作很好。刚试过它。

答案 1 :(得分:0)

您可以将滑块设置为对值更改的操作发送,并且在该操作中将滑块的值设置为等于“progress”的值(如果它变低)。