質問

UIImageViewを使用して表示しているアニメーションがあります:

imageView.animationImages = myImages;
imageView.animationDuration = 3;
[imageView startAnimating];

stopAnimatingを使用して停止できることはわかっていますが、必要なのは、停止できるようにすることです。理由は、stopを呼び出したときにアニメーション画像が表示されないのに対し、ボタンを押したときに最後に表示されていた画像を表示したいからです。

継続時間をもっと大きな数に設定しようとしましたが、それによってすべての画像も消えてしまいます。これを行うには、本当に基本的な方法が必要ですか?

役に立ちましたか?

解決 2

うーん...誰も知らないようだから、それは不可能だと思う。

先に進み、 NSTimer を使用する UIImageView subview を使用して、独自の UIView を作成しました。画像を切り替えます。この利点は、暇なときにタイマーを一時停止および再開できることであり、パフォーマンスは問題にならないようです。

他のヒント

このコードは、アニメーション化されたオブジェクトをアニメーションプロセスの現在の位置で一時停止します。時間や進行状況、または必要なものなど、他の変数を記録する場合、アニメーションを再開するのは非常に簡単です。

UIView *viewBeingAnimated = //your view that is being animated
viewBeingAnimated.frame = [[viewBeingAnimated.layer presentationLayer] frame];
[viewBeingAnimated.layer removeAllAnimations];
//when user unpauses, create new animation from current position.

@oddmeter少し編集:

    animatedView.animationImages = images; //images is your array
    [animatedView startAnimating];


    //Then when you need to pause;

[animatedView stopAnimating]; //Important!!
    animatedView.image = [images objectAtIndex: 0];

これでうまくいくはずです: https://developer.apple .com / library / ios /#qa / qa2009 / qa1673.html

基本的に、 CALayer ベースのアニメーションを一時停止/再開するために必要なことを示します。

UIImageView 制御アニメーションで CALayer メソッドを使用することに不快感を感じる場合は、常に UIImage 配列ベースのアニメーションを自分で作成できます。必要なコードは非常に短いため、ここから入手できます。 http://rssv2.blogspot.com/2011/04/animating-series-of-images-with-calayer.html

別のオプションは、 animationImages プロパティだけでなく、imageプロパティを設定することです。これを行うと、 UIImageView のアニメーションが停止したときに静的画像が表示されます。

クラスが UIImageView のサブクラスであり、画像の NSMutableArray を持っていると仮定して、次の手順を実行します。

self.animationImages = images;
//yes, I'm skipping the step to check and make sure you have at least one
//element in your array
self.image = [images objectAtIndex: 0];

最後のアニメーション画像のスクリーンショットを撮って表示できますか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top