画像を提供する代わりに、コアグラフィックスを使用してアプリの視覚要素を描画することが有益かどうかはよくわかりません。メモリの保存と実行速度の観点から、どちらが優れていますか?
2 に答える
メモリの保存と実行速度の観点から、どちらが優れていますか?
+UIImage:imageNamed:
最も効率的です。画像をキャッシュします。つまり、画像のコピーが1つだけメモリにあり、必要に応じて画像がデコードされ(PNG、JPEG、TIFFなどのデータから)、将来の再利用のために保持されます。メモリの使用が心配な場合、iOSは、不足してUIImage
いる場合やバックグラウンドに移行した場合にキャッシュを削除します。
Core Graphicsを使用して画像を描画しても、画像をコンテキストに描画するコードを記述し、コンテキストをビットマップとして保存し、ビットマップをキャッシュして後で再利用しない限り、キャッシュは行われません。そのため、必要になるたびに同じものを何度も描くことになります。たとえば、UIViewをオーバーライド-drawRect:
して画像を描画すると、アニメーション中に1フレームごとに呼び出されます(1秒間に60回)。これにより、CPUサイクルとバッテリー寿命が不必要に消費されます。
要するに、それはあなたのアプリが何であるか、そして何をするかに依存するということです。
画像を変更したりアニメーション化したりする必要がない場合は、画像を直接使用する必要があります。単一のビューコントローラに100枚の画像がない限り、パフォーマンスについてはそれほど心配しないでください。
iPhoneがニード・フォー・スピードのようなゲームを処理できるのであれば、さまざまな画像でアプリを実行するのは簡単な作業です。お役に立てれば。