[英]UIView animateWithDuration not working with UISlider
我希望滑块缓慢设置值,为此我正在使用此代码
[UIView animateWithDuration:2.0 animations:^{
[self.slider setValue:(float)val];
}];
但这是行不通的。 请帮帮我。
使用[self.slider setValue:(float)val animated:YES];
代替。
我发现,动画是不起作用的,因为动画是在视图仍加载时安排的。 因此,代替此(不设置动画):
-(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表示将为下一个运行循环安排动画。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.