垂直滑块中只有一个方向

Posted

技术标签:

【中文标题】垂直滑块中只有一个方向【英文标题】:only one direction in a vertical slider 【发布时间】:2013-01-04 16:56:54 【问题描述】:

在 iPad 的应用程序中,我正在尝试构建一个只会向上移动的滑块,它会被一个按钮重置。

我发现了如何垂直放置它,只需进行转换:CGAffineTransformMakeRotation。 但是如何阻止滑块向下移动呢?

任何帮助将不胜感激。

谢谢。

【问题讨论】:

好问题。我要说的是主要的压倒一切。 @AceLegend 根本不需要覆盖。看我的回答。 【参考方案1】:

您需要为滑块的值设置一个处理程序:

[slider addTarget:self action:@selector(sliderUpdated:) forControlEvents:UIControlEventValueChanged];

您需要一个用于当前滑块值的实例变量:

float _sliderValue;

你需要实现上面设置的sliderUpdated:方法。

- (void)sliderUpdated:(UISlider *)slider 
    float val = slider.value;
    if (val < _sliderValue) 
        // The user tried to move the slider down - move it back up
        slider.value = _sliderValue;
     else 
        // The user moved the slider up - save this as the new value
        _sliderValue = val;
    

确保您的“重置”按钮处理程序将_sliderValue 重置为滑块的最小值。

【讨论】:

我想在这种方法中..但滑块不会改变他的价值??它不能改变价值..我会试试的。谢谢 @Frade 使用这种方法,滑块的值只能上升,不能下降。【参考方案2】:

您可以创建一个自定义 UISlider 子类并实现- (BOOL)continueTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event 方法来检查滑块是否正在向下移动。

【讨论】:

然后……我猜不要动它。不确定这将如何运作,但它可能是您将使用的方法。决定如何禁用向下移动可能是一个挑战。不过我不确定。

以上是关于垂直滑块中只有一个方向的主要内容,如果未能解决你的问题,请参考以下文章

向上和向下滑动革命滑块

如何快速制作垂直滑块?

如何垂直移动带有滑块的UILabel

jquery垂直滑块句柄不移动

如何将滑块固定到我的五步滑块中的标记?

如何防止多个句柄在 jQuery UI 滑块中重叠?