滑块动画时更新标签上的滑块值

时间:2016-06-07 09:43:13

标签: ios objective-c cocoa-touch uislider

我在我的应用中使用滑块。我已经完成了所有设置,我面临的唯一问题是我希望滑块值不更新的标签。看看我的代码。 我有一个按钮,点击动画滑块。我无法更新我的标签,因为它在整个动画中显示0.0。 任何帮助将受到高度赞赏。

- (IBAction)btnClicked:(id)sender
 {
[UIView animateWithDuration:10 animations:^{
        [self.slider setValue:0.0 animated:true];
     } completion:^(BOOL finished) {
        [UIView animateWithDuration:10 animations:^{
            [self.slider setValue:100.0 animated:true];
        }];
    }];
 }

2 个答案:

答案 0 :(得分:1)

您的代码无效,因为您尝试将最大值设置为滑块,以便仅使用动画设置最大值。试试我的代码可能对你有所帮助。

使用此

更改您的btnClicked
 - (IBAction)btnClicked:(id)sender {
      [self.slider setValue:0 animated:true];
      [self setSliderValue:1];
 }

添加此setSliderValue方法

- (void)setSliderValue:(float)value {
    [UIView animateWithDuration:0.2 animations:^{
    [self.slider setValue:value animated:true];
    } completion:^(BOOL finished) {
        self.lblSliderValue.text = [NSString stringWithFormat:@"%0.0f", self.slider.value];
        if (self.slider.value != self.slider.maximumValue) {
            [self setSliderValue:value+1];
        }
    }];
}

希望这会对你有所帮助。

答案 1 :(得分:0)

试试这样:

    - (IBAction)btnClicked:(id)sender
 {
            [self.slider setValue:0.0 animated:true];
[UIView animateWithDuration:10 animations:^{
[slider addTarget:self action:@selector(sliderChanged:) forControlEvents:UIControlEventValueChanged];

     } completion:^(BOOL finished) {
        [UIView animateWithDuration:10 animations:^{
            //[self.slider setValue:100.0 animated:true];
        }];
    }];
 }

sliderChanged方法是这样的:

 - (void)sliderChanged:(UISlider *)slider {
    self.label.text = [NSString stringWithFormat:@"%0.2f", slider.value];
}