4

有没有办法找出 UIImage 所在动画的哪一帧?当你启动它时,你给它一个动画图像数组,所以它显然必须将当前图像的索引存储在某个地方。你知道我怎么能找到这个吗?另外,有没有办法告诉 UIImageView 从哪个帧开始动画?

4

1 回答 1

4

在类转储 UIKit 之后,我既找不到文档中的属性,也找不到可疑的 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;
}

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

于 2013-07-25T04:20:20.150 回答