3

iPhone を Retina デバイスに移行するには、解像度が 2 倍のイメージを用意し、「@2x」という名前を付けて、IOS が Retina デバイスで 2x イメージを自動的に使用するようにする必要があります。

私の質問は、ルールを破ってトリプル サイズ (またはダブル サイズよりも大きいサイズ) の画像を作成し、Apple の規制状態として "@2x" という名前を付けたらどうなるかということです。Apple は私のアプリケーションを AppStore にアップロードすることを拒否しますか?

私がそのようにした理由は、背景画像を設定しているときに、次のようにしたからです。

self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed: @"background.png"]];

iPhone 5 の Retina ディスプレイでは、iPhone 5 の高さは 2 倍のサイズではなく、2 倍のサイズに余分なピクセルを足したようなものであるため、2 倍のサイズの画像は背景に適切に収まりません。これが、背景画像を 2 倍以上のサイズにカスタマイズしたい理由です。

IOS には非常に優れた便利なアプローチがあるため、アプリに余分なコードを追加して、デバイスの種類を手動で確認し、それぞれの画像を読み込むことは本当にしたくありません。

私の心配は、この場合、Apple は私のアプリを拒否するのでしょうか?

4

2 に答える 2

4

「間違った」サイズ/解像度で画像を作成しても、Apple はアプリを拒否しません。ただし、通常、そうすることは意味がありません。

は解像度を示すための@2xもので、iPhone 4/4S と iPhone 5 の解像度は同じです。唯一の違いは、画面の高さです。

また、UIImageView大きな背景画像には を使用する必要があります (メモリ管理とパフォーマンスが向上します)。

これをクラス ファイルまたはプロジェクトのプレフィックス ファイルに追加します。

#define deviceIsIPhone5 ([UIScreen mainScreen].applicationFrame.size.height == 568 ? YES : NO)

そしてあなたのviewDidLoad(またはどこか似たような):

if (deviceIsIPhone5) 
{
    self.backgroundImage.image = [UIImage imageNamed:@"background-568h@2x.png"];
} 
else
{
    self.backgroundImage.image = [UIImage imageNamed:@"background@2x.png"];
}
于 2013-04-16T10:06:49.963 に答える
0

いいえ、アプリは拒否されません。

あなたがやったことのようにするのは良い方法ではありません。Retina 以外のハードウェアでアプリを実行する場合は通常のイメージが使用され、Retina ハードウェアを使用する場合は常に @2x イメージが自動的に使用されます。

両方のイメージを与えるのはアイドルです。

于 2015-03-31T10:27:24.127 に答える