如何将 UISlider 的滑动限制在某个点?

How to limit sliding of the UISlider to a certain point?

我有一个 UISliderUIProgressView,我为其设置了特定值。然后,滑块手柄将按预期移动到最大值。

UISlider and UIProgressview Image

现在,我想让用户将滑块滑到那个红点。 (如图)

例如,我有一个 UISlider,最大值为 100,最小值为 0。但是,我想将滑块的缩略图设置为不穿过滑块内的某个点.

我不希望用户滑动 "more left" 而不是进度色调,但是在 "right" 上,我想让用户来回滑动手柄直到如图中的红点。 或者,换句话说:我希望 UISlider "stick" 到 progressView 的进度色调。如果进度为 80..进度色调将显示高达 80,并且滑块应从该红点开始。

这种行为在 Swift 中可能吗?

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

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

给你。

 var prevValue : Float = 0.0

@IBAction func sliderChangeValue(_ slider: UISlider) {

    if slider.value < prevValue {

        slider.value = prevValue;
    }
    else{

        prevValue = slider.value;
    }
}

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