确定哪一个UIImageView显示的animationImages?

有没有办法找出它的animationUIImage是哪一帧? 当你启动它时,你给它一个animationImages数组,所以显然必须存储当前图像的索引。 你知道我怎么能find这个? 另外,有没有办法告诉UIImageView哪个框架开始animation?

我在文档中找不到任何一个属性,也没有在UIKit转储之后find一个可疑的ivar或私有方法,所以我能想到的最好的是:

NSDate *startDate; // instance variable - (void)startAnimation { startDate = [NSDate date]; [imageView startAnimating]; } - (int)currentImageIndex { NSTimeInterval elapsed = -1 * [startDate timeIntervalSinceNow]; int nFrames = imageView.animationImages.count; NSTimeInterval frameDuration = imageView.animationDuration / nFrames; int current = elapsed / frameDuration; return current % nFrames; } 

至于如何在特定的图像上启动animation:使用NSMutableArray来存储图像,并旋转数组,使其第一个元素是要开始的图像,然后重新设置图像视图的animationImages属性。 要旋转一个NSMutableArray ,请参阅这个问题的答案。