我希望滑块缓慢设置值,为此我使用此代码
[UIView animateWithDuration:2.0 animations:^{
[self.slider setValue:(float)val];
}];
但这不起作用。 请帮帮我。
答案 0 :(得分:4)
改为使用[self.slider setValue:(float)val animated:YES];
。
答案 1 :(得分:0)
我发现动画不起作用是在视图仍在加载时安排动画。所以不是这个(没有动画):
-(void)animateSlider: duration:(NSTimeInterval)duration
{
_slider.maximumValue = duration;
_slider.minimumValue = 0;
[UIView animateWithDuration:duration
delay:0
options: UIViewAnimationOptionCurveLinear
animations:^{
[_slider setValue:duration animated:YES];
}
completion:^(BOOL finished){}
];
}
我执行以下操作,其中animateSlider是一个内部方法:
-(void)animateSlider
{
float value = _slider.maximumValue;
[UIView animateWithDuration:value
delay:0
options: UIViewAnimationOptionCurveLinear
animations:^{
[_slider setValue:value animated:YES];
}
completion:^(BOOL finished){}
];
}
-(void)animateSlider: duration:(NSTimeInterval)duration
{
_slider.maximumValue = duration;
_slider.minimumValue = 0;
[self performSelector:@selector(animateSlider) withObject:nil afterDelay:0];
}
afterDelay:0表示动画将安排在下一个runloop。