我正在使用 UIView block API 为 UIImageView
设置动画。我的动画使 UIImageView
连续淡入淡出。我如何才能仅在特定的持续时间内对此进行动画处理?
这段代码我贴出来了
float tempDuration = 5.0;
[UIView animateWithDuration:tempDuration
delay:0
options:UIViewAnimationOptionAutoreverse | UIViewAnimationOptionAllowUserInteraction
animations:^{
_imageView.alpha = 1;
}
completion:nil];
最佳答案
首先请允许我介绍一篇很棒的文章,以了解动画的一些功能:
在这篇文章中,您有一部分显示了您想要的内容。
你想要这样的东西:
因此您可以通过以下方式进行配置:
-(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 秒,并且您可以调整重复次数。
关于具有持续时间和自动反转的 iOS 动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20423545/