有没有办法找出 UIImage 动画的哪一帧?当您启动它时,您会给它一个 animationImages 的数组,因此它显然必须在某处存储当前图像的索引。您知道我怎么能找到这个吗?另外,有没有办法告诉 UIImageView 从哪一帧开始动画?
有没有办法找出 UIImage 动画的哪一帧?当您启动它时,您会给它一个 animationImages 的数组,因此它显然必须在某处存储当前图像的索引。您知道我怎么能找到这个吗?另外,有没有办法告诉 UIImageView 从哪一帧开始动画?
我在查看了UIKit的类和文档后,并没有找到相关的属性、私有方法或变量。因此,我能想到的最好的办法是:
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;
}
NSMutableArray
来存储图像,并旋转数组,使其第一个元素是您想要开始的图像,然后重新设置图像视图的animationImages
属性。要旋转一个NSMutableArray,请参见这个问题的答案。