我正在用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秒,并且可以调整重复次数。

09-03 19:00