UIImageView
は、画像のアニメーション化シーケンスのためにanimationImages
を有する。それはうまく動作します。しかし、それは画像オブジェクトを保持します。だから、このアニメーションが起こっているときに、メモリの使用が急増しています。その画像ビューの画像プロパティを設定するのにNSTimer
を試しましたが、動作しません。UIImageViewを使用してイメージの配列をアニメーション化する代替手段はありますか?
他の方法でもこれを達成できますか?
UIImageView
は、画像のアニメーション化シーケンスのためにanimationImages
を有する。それはうまく動作します。しかし、それは画像オブジェクトを保持します。だから、このアニメーションが起こっているときに、メモリの使用が急増しています。その画像ビューの画像プロパティを設定するのにNSTimer
を試しましたが、動作しません。UIImageViewを使用してイメージの配列をアニメーション化する代替手段はありますか?
他の方法でもこれを達成できますか?
代わりに探しているのではなく、既存のコードを修正しようとしてください。
animationImages
のための画像を割り当てるのベストプラクティスがinitWithContentsOfFile
代わり
imageNamed:
imageNamed:
のそれのキャッシュのあなたのイメージを使用する必要があり、あなたはメモリの制御を失う - オブジェクトを解放すると、実際に画像を解放するという保証はありませんが、それらがキャッシュされているときに2回目にイメージのロードを高速化します。
imageWithContentsOfFile:
画像はキャッシュされませんが、画像はキャッシュされず、重い画像の読み込み速度がはるかに遅いため、メモリーにはやや親しみがあります。
アニメーションが停止したら、イメージコレクション配列を解放してください。 ARCを使用している場合は、イメージコレクション配列をnilにします。
ベストプラクティス:アニメーション後
for(int itemIndex = 0; itemIndex < 20; itemIndex++) {
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"myImage1" ofType:@"png"];
UIImage *image = [[UIImage alloc] initWithContentsOfFile:filePath];
[imageArray addObject:image];
}
:
imageArray = nil;
あなたは画像にCoreGraphicsとCADisplayLinkを使って次々に描くことができます。 –