确定一个UIImageView正在显示哪个animationImages?

4

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

1个回答

4

我在查看了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,请参见这个问题的答案。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接