2

私のユニバーサル アプリには 2 つのストーリーボードがあります。1 つは iPhone 用、もう 1 つは iPad 用です。多くのコードがプログラムでコーディングされており、両方のストーリーボードが同じ ViewController を共有しています。これがView Controllerでどのように機能するかの例は次のとおりです。

  if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){ iPadInUse = YES;}
    else { iPadInUse = NO;}

したがって、両方のデバイスに表示する必要がある画像がある場合は、次のように記述します。

       if (iPadInUse == YES) { recordViewImage = @"iPadRecordPanel@2x.png"
                             // x and y positions to adjusted accordingly }
               else {  recordViewImage = @"recordingPanel@2x.png"
                    //  // x and y positions to adjusted accordingly}

シミュレーターでは、すべてのデバイス (網膜/非網膜) ですべて正常に動作します。私が持っている唯一の実際のデバイスは iPhone 4S です (すべて正常に動作します)。Retina 以外のデバイスから Retina 以外のイメージを実際にロードしていないので、これで問題ありませんか?

4

4 に答える 4

7

いいえ、これは問題ありません。

Retinta スクリーンを持たないデバイスでは、Retina 画像をロードするために、より多くのメモリが使用されます。非網膜画像と網膜画像を常に提供し、@2x画像を直接読み込まないようにしてください。iOS が正しい画像をロードします。

于 2013-05-28T10:26:44.753 に答える
1

iPadRecordPanel@2x.png のような名前を付けると、適切な画像が表示されません。iPadRecordPanel.png という名前を付けると、バンドルから 2 倍の画像が取得されます。@2x でサフィックスを与えることはできません。適切な画像を自動的に識別して表示します。

于 2013-05-28T10:28:13.523 に答える
1

No your app will not be rejected but you should not do thisRetina 以外の画像を提供しないと、ダウンスケール操作が必要になるため、古いデバイスではパフォーマンスと画質が低下する可能性があるためです。

お役に立てば幸いです。

于 2013-05-28T10:28:21.170 に答える