【问题标题】:Getting negative value when UISlider goes left当 UISlider 向左移动时获得负值
【发布时间】:2015-02-25 19:07:32
【问题描述】:

我试图弄清楚如何在滑块返回时获得负值。

当我从左向右滑动时,它返回一个正值。我需要它在返回时返回一个负值(从右到左)。

换句话说,我如何检测到滑块正在返回?

    self.borderSlider = [[UISlider alloc] initWithFrame:CGRectMake(0, 0, 200, 30)];
    self.borderSlider.center = CGPointMake(self.view.centerX, SCREEN_WIDTH / 2);
    self.borderSlider.minimumValue = 0.0f;
    self.borderSlider.maximumValue = 100.0f;
    self.borderSlider.tintColor = [UIColor grayColor];
    [self.borderSlider addTarget:self action:@selector(borderSliderValueChanged:) forControlEvents:UIControlEventValueChanged];

【问题讨论】:

  • 您需要跟踪以前的值并将其与新值进行比较。

标签: ios objective-c uiview slider uislider


【解决方案1】:

一个简单的例子表达了@rmaddy 在他的评论中已经说过的内容:

@implementation YourClass {
  float _sliderValue;
}
- (void)borderSliderValueChanged:(UISlider *)slider {
  float currentValue = slider.value;
  if (currentValue > _sliderValue) {
    // right
  } else if (currentValue < _sliderValue) {
    // left
  }
  _sliderValue = currentValue;
}
@end

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,所以我开发了它,检查这个 repo:Repo

    slider?.amplitude = 50 
    slider?.sliderDidChange = { [weak slider] value in
            if value > 10 {
                slider?.activeColor = .blue
            } else if value < 0 {
                slider?.activeColor = .red
            } else {
                slider?.activeColor = .lightGray
            }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多