我正在用UIView块API设置UIImageView
的动画。我的动画连续地淡化UIImageView
内和外。如何仅在特定时间段内对此进行动画处理?
我已经写了这段代码
float tempDuration = 5.0;
[UIView animateWithDuration:tempDuration
delay:0
options:UIViewAnimationOptionAutoreverse | UIViewAnimationOptionAllowUserInteraction
animations:^{
_imageView.alpha = 1;
}
completion:nil];
最佳答案
首先,让我介绍一篇很棒的文章,以了解动画的某些功能:
Controlling Animation Timming
在本文中,您可以看到展示所需内容的部分。
您想要这样的东西:
因此,您可以通过以下方式进行配置:
-(void) animateImageView:(UIImageView*) imageView
withDuration:(int) duration
withRepeatCount: (int) repeatCount {
CABasicAnimation *opacityAnim = [CABasicAnimation animationWithKeyPath:@"opacity"];
opacityAnim.fromValue = @1.0;
opacityAnim.toValue = @0.0;
opacityAnim.autoreverses = YES;
opacityAnim.duration = duration/2.0/repeatCount;
opacityAnim.removedOnCompletion = YES;
opacityAnim.repeatCount = repeatCount;
[imageView.layer addAnimation:opacityAnim forKey:nil];
}
这样,您可以确保动画始终为5秒,并且可以调整重复次数。