4

UIImage がアニメーションのどのフレームにあるかを調べる方法はありますか? 開始すると、animationImages の配列が渡されるため、現在の画像のインデックスをどこかに保存する必要があることは明らかです。どうすればこれを見つけることができるか知っていますか?また、アニメーションを開始するフレームを 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 に答える