Animate UISlider smoothly

坚强是说给别人听的谎言 提交于 2019-12-03 08:05:19
rdelmar

You need to chain the animations by putting the second animation in the completion block of the first:

-(IBAction)animateSlider:(id)sender {

    [UIView animateWithDuration:2 animations:^{
        [self.slider setValue:.75];
    } completion:^(BOOL finished) {
        [UIView animateWithDuration:2 animations:^{
            [self.slider setValue:0.25];//or `[self.slider setValue:(.75)-(.5*finished)];` if you want to be safe
        }];
    }];
}

Swift 2.2 version for rdelmar's answer

@IBOutlet weak var slider: UISlider!

func animateSlider(sender: AnyObject){
    UIView.animateWithDuration(2, animations:  {() in
        self.slider.setValue(0.75, animated: true)
        }, completion:{(Bool)  in
            UIView.animateWithDuration(2, animations: {() in
                self.slider.setValue(0.25, animated: true)
            })
    })
}

and to call the function pass the UISlider in the parameter

animateSlider(self.slider)
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!