2012-03-12 2 views
1

iOSとフルサイズのiphone画面(画像の解像度にもよる)の画像を扱っています。大きな画像はiOSにロードされ、アウトレットでサイズが変更されました

これらの画像の多くをサムネイルとして作成する必要がありますが、私はリソースとしてフルサイズの画像しか持っていません。

私の質問は、すべての画像をUIButtonの背景として読み込み、ボタンのサイズを68x68pxに変更した場合、画像によって割り当てられるメモリ量はフル解像度で読み込まれた場合と同じですか?

私は以前にこれらの画像に圧縮処理を施しましたか?

ありがとうございました。

答えて

2

私はメモリ管理の質問は、あなたが提供していない詳細の数によって異なると思います。例えば、あなたのコードで何回画像をロードしますか? [UIImage imageNamed:@"bigImage"]を複数回使用すると、iOSは喜んでイメージを再度読み込んで読み込みます。しかし、これを一度だけ行い、UIImageオブジェクトを何度も使用すると、メモリ内にイメージのコピーが1つしかありません。

ボタン自体のメモリ容量はわかりません。私の推測では、アプリケーションのメモリフットプリント(基底のUIImageオブジェクトを超えて)に何も追加しないか、または68x68の画面バッファに必要なメモリだけを追加することです。

私があなたの状況にあった場合は、開発の一環としてボタンサイズの小さな画像を作成してアプリに含めることになるでしょう。これはまた、実行時に利回り効率のメリットがあると思います。ボタンのサイズを動的に変更する場合、おそらくあなたのアプローチはうまくいくでしょうが、私はまだ設計の観点からいくつかの精査を行います - 動的にサイズを変更するボタンは珍しいです。

+0

ありがとうございます!しかし、画像はプログラムに追加され、サムネイルのような画像でタイルを作成する必要があります。私はボタンを追加する前にイメージのサイズを変更するメソッドを作成する予定です。しかし、私はボタンが画像のサイズを自動的に変更するかどうかを知りたいです。ありがとう。 – NemeSys

+1

'myButton.contentMode = UIViewContentModeScaleToFill'をyesに設定すると、画像はボタンに合わせて拡大/縮小されます。しかし、それは新しい、より小さなUIImageの作成をもたらすことはありません。 – QED

関連する問題