以前の iOS のバージョンのサイズクラスでアプリを展開
iOS 8 より前の iOS のバージョンをサポートするアプリの場合、ほとんどのサイズクラスは下位互換性があります。
サイズクラスは、以下の場合に、下位互換性があります。
- アプリは、Xcode のバージョン6以降を使用してビルドされた
- アプリの展開ターゲットは、iOS 8 よりも以前である
- サイズクラスは、ストーリーボードまたは xib ファイルで指定されている
- 高さ成分の値は、コンパクトではない
Nib を通じた互換性
サイズクラスの下位互換性は、アプリバンドルに含まれている nib を生成することによって実装されます。これらの nib は、アプリが、iOS 8 以前のバージョンで実行する時使用されます。ある nib は iPhone 用に生成され、また他のものは iPad 用に生成されます。
アプリが、特定のサイズで表示されているかのように、ストーリーボードや xib ファイルから項目が各 nib に追加されます。
- iPhone の nib は、コンパクトな幅と、通常の高さの表示に基づいています。
- iPad の nib は、通常の幅と通常の高さの表示に基づいています。
どちらの場合も、nib は、ランドスケープのスクリーン用に作成されます。あなたのアプリがランドスケープのために変更が必要な場合は、コードに必要な変更を加える必要があります。
重要: 互換性は実行時にではなく、ビルド時に発生します。
ビュー、制約、およびフォントを選択
ビュー、制約、およびフォントは、それらがスクリーン上に表示されるために選択されるのと同じ方法でサイズクラスから追加されます。[Any|Any] から項目が、これらの項目が変更またはより特定的なサイズクラスでアンインストールされない限り、使用されます。その場合には、ほとんどの特定的な項目が使用されます。たとえば、iPhone の nib で、[コンパクト|通常] サイズクラスで修正された項目は、[コンパクト| Any] 内の項目に優先します。また、[コンパクト| Any] で修正された項目は [Any | Any] の項目に優先します。
表 1 は、項目が iPhone の nib に含まれているサイズクラスの優先順位を示しています。表 2 は、iPad の nib の優先順位を示しています。nib は、ランドスケープのため生成されるので、コンパクトの高さ成分でのサイズクラスは無視されます。
表 1 iPhone nib のクラスの優先順位
幅 | 高さ |
---|---|
コンパクト | 通常 |
Any | 通常 |
コンパクト | Any |
Any | Any |
表 2 iPad nib のサイズクラスの優先順位
幅 | 高さ |
---|---|
通常 | 通常 |
通常 | Any |
Any | 通常 |
Any | Any |