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

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

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

任何帮助将不胜感激。

谢谢。

【问题讨论】:

  • 好问题。我要说的是主要的压倒一切。
  • @AceLegend 根本不需要覆盖。看我的回答。

标签: iphone ios ipad uislider


【解决方案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 方法来检查滑块是否正在向下移动。

【讨论】:

  • 然后……我猜不要动它。不确定这将如何运作,但它可能是您将使用的方法。决定如何禁用向下移动可能是一个挑战。不过我不确定。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-15
  • 1970-01-01
  • 1970-01-01
  • 2019-09-11
相关资源
最近更新 更多