所以我有这段代码可以无限次地对一组图像进行动画处理,但是一旦我尝试限制它的动画处理次数,它就不起作用了。甚至没有显示图像。
有效的代码:
animatedMap.animationImages = [NSArray arrayWithObjects:
[UIImage imageNamed:@"0.gif"],
[UIImage imageNamed:@"1.gif"],
[UIImage imageNamed:@"2.gif"],
[UIImage imageNamed:@"3.gif"],
//etc...];
animatedMap.animationDuration = 20.0f;
animatedMap.animationRepeatCount = 0;
[animatedMap startAnimating];
不起作用的代码:
animatedMap.animationImages = [NSArray arrayWithObjects:
[UIImage imageNamed:@"0.gif"],
[UIImage imageNamed:@"1.gif"],
[UIImage imageNamed:@"2.gif"],
[UIImage imageNamed:@"3.gif"],
//etc...];
animatedMap.animationDuration = 20.0f;
animatedMap.animationRepeatCount = 1;
[animatedMap startAnimating];
这看起来真的很奇怪吗?
我注意到同样的行为,我的解决方案是将动画代码的开头放在不同的位置。
对我来说,它是一个视图控制器,所以我把imageView.startAnimating()
in viewWillAppear:
代替viewDidLoad:
.
我不 100% 明白问题是什么,但可以假设动画不会触发,因为通过设置animationRepeatCount
到 1 时,“一个动画”发生在视图显示之前。为了更具技术性,CATransaction::Commit
执行一个动画before显示视图,而不是视图时显示is显示。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)