【发布时间】:2011-04-15 19:41:33
【问题描述】:
我们知道UIImageView 对图像序列动画有很好的支持。我们可以轻松地创建一个 UIImage 对象数组,设置animationImages 属性,配置动画持续时间,重复次数等,然后触发。但是好像没有办法知道这个动画什么时候结束。
假设我有十张图片,然后我想用它们运行动画(重复计数 = 1)。当动画结束时,我想运行一些其他代码。知道动画已经结束的最佳方法是什么?
我已经明白我可以创建一个NSTimer 并安排它在动画持续时间后触发。但是,如果您需要良好的精度,您真的不能依赖计时器。
所以我的问题是,有没有更好的方法可以知道UIImageView 图像序列动画在不使用计时器的情况下已经结束?
代码是这样的
myImageView.animationImages = 图像; // images 是 UIImages 的 NSArray myImageView.animationDuration = 2.0; myImageView.animationRepeatCount = 1; [myImageView 开始动画]【问题讨论】:
-
你真的尝试过使用计时器吗?确实,时间不是 100% 准确的,但 AFAIK 你也不能依赖其他动画的时间。如果内置 UIImageView 动画本身使用计时器,我不会感到惊讶。
-
你我试过计时器。事实上,这就是我现在正在使用的。这在很多情况下都可以,但是...不是 100% :-)
-
另外请注意,无论您的目标是什么,
-performSelector:withObject:afterDelay方法可能比一次性调用的计时器更简单。它在内部为你做计时器。
标签: iphone ios objective-c uiimageview