2016-11-16 6 views
0

UIImageViewは、画像のアニメーション化シーケンスのためにanimationImagesを有する。それはうまく動作します。しかし、それは画像オブジェクトを保持します。だから、このアニメーションが起こっているときに、メモリの使用が急増しています。その画像ビューの画像プロパティを設定するのにNSTimerを試しましたが、動作しません。UIImageViewを使用してイメージの配列をアニメーション化する代替手段はありますか?

他の方法でもこれを達成できますか?

+0

あなたは画像にCoreGraphicsとCADisplayLinkを使って次々に描くことができます。 –

答えて

0

代わりに探しているのではなく、既存のコードを修正しようとしてください。

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; 
関連する問題