2011-03-01 9 views
0

網膜ディスプレイを簡単にサポートする方法を探しています。もし私がペン先のビューを見て、そこに使われているすべての画像リソースの名前を取得できたら、対応する網膜画像があるかどうかを確認して(網膜装置の場合は)ロードすることができました。nib経由で読み込まれたビューを調べて、imageViews内のイメージのリソース名を調べる方法はありますか?

私はロードされた後にサブビューを反復する方法を知っていますが、Interface Builderで設定されたリソース名をどのように(またはできるか)知ることができません。私は、コード内にすべてのイメージ名を設定する必要がないようにしようとしています。私は(擬似コードで)やってみたい何

for subView in self.view.subviews: 
    if subView is UIImageView: 
     resourceName = (UIImageView *)subView.imageName 
     if retinaResourceFileExists(resourceName) and isRetinaDisplay: 
      (UIImageView *)subView.image = retinaImage(resourceName) 

(ボーナス:?たぶんそこIBOutlet変数を反復処理する方法があるが、私はそれを疑う)

答えて

2

[UIImage imageNamed:@"Foo"];を使用すると、デバイスは@ 2xイメージを自動的に読み込みます。

Interface Builderは自動的に網膜画像も読み込みます。

+0

まあまあまあ素晴らしいです。 – zekel

+0

iOS4(?)より先にimageNamedで使用されるファイル名に拡張子を含める必要があることに注意してください。しかしそれはまだ2倍の画像をロードします。 –

関連する問題