6

Xcode 6.1 で新しいシングル ビュー プロジェクトを開始
し、ターゲットに移動し、デバイス ファミリをユニバーサルに設定し、展開ターゲットを 7.1 に設定しました

ストーリーボードでは、サイズ クラスに赤いラベルを配置し、サイズ クラスRegular Width | Any Height に青いラベルを配置しました。Compact Width | Any Height

ドキュメントによると、ipad で実行すると赤のラベルが表示され、iphone で青のラベルが表示されるはずです。これまでのところ、これはシミュレーターと実際のデバイスの両方で期待どおりに機能しています。

ここで、ターゲットに戻り、Device Family を IPadに設定し、アプリケーションを再度実行します。

  1. シミュレーター上の iPad 2 (7.1) - 赤ラベル

  2. iPad 2 (7.1) (実機) -青ラベル ?!?!?

  3. iPad 2 (8.1) (実機) - 赤ラベル

同じことが、iPad Air/iPad mini と、私が遭遇した IOS 7.1 を搭載した他のすべての iPad にも当てはまります。

基本的に、iOS 7.1 で iPad のデバイス ファミリを設定すると、ユニバーサル ストーリーボードで、ストーリーボードがコンパクト サイズと見なされることがわかります。IOS 7.1 と互換性がある必要があり、アプリケーションは最初は iPad 用にのみリリースされます。誰もそれを修正する方法の手がかりを持っていますか?

編集

Apple のドキュメントによると、iOS 8 より前のバージョンの iOS をサポートするアプリの場合、ほとんどのサイズ クラスは下位互換性があります。サイズ クラスは下位互換性があります。

  1. アプリが Xcode バージョン 6 以降を使用してビルドされている

  2. アプリの展開対象はiOS 8以前

  3. サイズ クラスは、ストーリーボードまたは xib で指定されます

  4. 高さコンポーネントの値がコンパクトではありません

上記のすべてが私の例に当てはまります。

4

2 に答える 2

0

xcodeビルドフォルダーに作成された中間ファイルを比較してみましたが、テストしたデバイスに依存関係がないことがわかる限り(展開ターゲットを7.1に設定している限り、どのプラットフォームに移行するかは問題ではありません)最終的に展開される)したがって、これは xcode または ios 7.1 のバグではなく、実際にはこの特定のシナリオの下位互換性がないと考える傾向があります。

Apple のテクニカル サポートにバグを報告しましたが、今のところリプレイはありません。現時点では、すべてのRegular width制約を として設定し、制約Any widthをアンインストールすることで回避できるようCompact widthです。アプリケーションが IPhone 用にリリースされたら、この変更を元に戻します。

于 2014-11-24T10:18:43.940 に答える