0

Xcode4.5.2プロジェクトがあります。4つのUIViewを備えたストーリーボードがあります。StoryBoardの展開で自動レイアウトがオンに設定されているiOS6

iPhone 5で実行しているときにレターボックスを上下に表示し、iPhone5で実行しているときにビューのサイズを変更しないようにしたい

iPhone5でアプリを実行すると(letterBoxが表示されません)、UIViewが自動的に引き伸ばされます(誤って)

iPhone 4でアプリを実行すると、すべてが期待どおりになります。

レターボックスが期待どおりに表示されないのはなぜですか?

4

1 に答える 1

1

何らかの理由で、古いアプリと同じように iPhone 5 でアプリを動作させたい場合 (OS によって 3.5 インチの画面サイズに自動的にレターボックス化される)、アプリに Default-568h@2x.png を含めないでください。ただし、Apple は、App Store に提出された新しいアプリが 4 インチの画面をサポートすることを期待しているため、アプリをそのように配布することを期待している場合、この戦略ではあまりうまくいかないかもしれません.

iPhone 5 (および iPod touch 第 5 世代) の画面を「サポート」したいが、ほとんどの UI を古い画面サイズのままにしておく場合...まあ、ユーザーはそれを好まないかもしれません (App Store のレビュアーもそうではないかもしれません)。ただし、自動レイアウトを使用することは可能です。問題は、ウィンドウ (またはビュー コントローラー) のビュー階層のルート ビューが、画面に合わせて常に自動的にサイズ変更されることですが、それが実際の UI コンテンツのメイン コンテナーでなければならないということはありません。

  1. IB で、エディターを 3.5 インチ画面モードにして、新しい UIView をビュー コントローラーのルート ビューにドロップします。画面いっぱいに自動的にサイズ変更されます (高さ 460 ポイント)。

  2. ピン > 高さ制約を追加して、スーパービューのサイズがどのように変更されても、ビューが 460 ポイントの高さを維持するようにします。

  3. スーパービューの高さが変わってもビューが中央に配置されるように、 Align > Vertical Center in Container制約を追加します。

  4. すべての UI をこのビュー内に配置します。

iPhone 5 では、UI の上下に白いバーが表示されます (必要に応じてルート ビューの色を変更します)。

これは、UI が横向きに回転しない場合にのみ機能することに注意してください。1 組の制約のみを使用して、両方の方向に対してこの種の人為的なレターボックスを作成できるとは思わないため、回転をサポートしたい場合は、プログラムで制約を切り替えることにより、方向の変更に対応する必要があります-ピンの高さと縦向きでは縦方向に中央揃え、幅をピンで留め、横向きでは横方向に中央揃えにします。

于 2013-02-13T17:57:29.280 に答える