2016-08-22 11 views
1

iPhoneアプリで使用するアニメーション画像を作成しようとしています。私はこのアニメーションを1回だけ再生する必要があります。私はUIImageViewでそれを行う方法を見つけましたが、アニメーションのコードはUIImageViewからではなく、UIImage自体から来るべきであることを意味するこのプロジェクトのためにUIImageを使用する必要があります。 animatedImagewithImages関数を使用してアニメーション化されたUIImageを作成する方法はわかっていますが、アニメーションループは永遠に繰り返されます。それを1つだけに制限する方法はありますか?SwiftにUIImageを作成してアニメーションを1回だけ作成する方法はありますか?

私はUIImageView repeatCountを含む解決策を探していません。UIImage自体がアニメーションを停止できる必要があります。

+1

「遊ぶ」とはどういう意味ですか? UIImageは静的です – PeejWeej

+0

アニメーション化されたUIImageを作成してUIImageViewsに配置すると、アニメーションはimageViewから何も聞かなくても再生されます。 –

+0

ああ申し訳ありませんが、その部分を逃した。あなたにそれを壊すことは嫌ですが、それはそのAPIの意図ではなく、あなたが働くことができるかもしれない何かが壊れるかもしれないハックになります。アニメーションを制御したい場合は、他にもオプションがあります。 – PeejWeej

答えて

1

おそらく、最初のN-1フレームを持ち、その後に最後のフレームの重複が多数あるアレイでイメージを作成するだけですか?たとえば、30個のフレームがあり、最後に1分のビデオを1秒間保持したいとします。最初の29フレームと最後のフレームの1801コピーの配列を作成します。持続時間を61秒に設定すると、それがあります。

これは永遠に一時停止しませんが、任意に長くすることができます。

+0

私はこのようなことを考えていましたが、メモリが重くないでしょうか? –

+0

私は試してみる機会がありませんでしたが、NSImageインスタンスは同じNSImageRep(実際のビットマップデータ)を共有できます。私は、同じフレームの複数の "コピー"は、かなりの量のメモリを使用しないことを期待しています。 –

+0

シミュレータのクイックテストがこれを裏付けているようです。同じ画像の1000フレームは、10フレーム(多分約1MB以上)より多くのメモリを消費しません。 –

関連する問題