1

iOS 5.0+ をサポートする必要がある私のアプリケーションには、デバイスに応じて適切な画像をロードする必要がある背景 UIImage があります。そのため、対応する解像度で 5 つの画像を作成しました。

  • img.png
  • img@2x.png
  • img-568h@2x.png
  • img~ipad.png
  • img@2x~ipad.png

また、Default-568h@2x.png スプラッシュ画像を設定しました。次に、アプリが実行されているデバイスを viewDidLoad で検出して使用します

[bkgImageView setImage:[UIImage imageNamed:@"img.png"]];

適切な画像をロードします。img-568h@2x.png である iPhone 4 を除いて、すべての解像度は正常に読み込まれます。これを明示的に読み込むと、

[bkgImageView setImage:[UIImage imageNamed:@"img-568h@2x.png"]];

縮尺が正しくありません。では、自動または手動で 4 インチの網膜画像を読み込むにはどうすればよいでしょうか?

4

1 に答える 1

2

ファイル名の末尾に追加-568hしても機能しません。サポートされている修飾子は、、、@2xおよび~ipadのみ~iphoneです。動作するように見える唯一のケース-568hは起動イメージで、イメージには具体的に名前を付ける必要がありますDefault-568h@2x.png

それに応じて画面を調整するには、自動レイアウト (またはストラットとスプリング) を使用する必要があります。

あなたの問題は、すでに十分な大きさの画像を自動的に引き伸ばすことです。

ソリューション:

そのデバイスのイメージを明示的にロードする場合は、「image-568h」をロードして、自動的に @2x を追加する必要があります。そうすれば、それが高解像度の画像であることがわかり、引き伸ばそうとしません。

さらに、デバイスを検出するのではなく、4 インチの画面に合わせて下部に余分なスペースを設けて画像を設計し、画像を A​​spect Fill に設定して、小さいデバイス用にクリップできるようにすることもできます。

于 2013-03-05T13:24:28.240 に答える