[解決済み] Xcode 6のアダプティブUIは、どのようにしてiOS 7とiOS 6の後方互換性を確保できるのですか?
質問
WWDC のビデオ 216 番、「Building Adaptive UI with UIKit」を見ました。
45:10 あたりで Tony Ricciardi が、新しい変更をサポートするための Xcode 6 での IB の変更について話しています。
彼は、quot;これらのドキュメントを古いバージョンの iOS に逆向きにデプロイすることができます、と言っています" 。
(ここで "これらのドキュメント" は、おそらく異なるサイズ クラスのための特定の設定を持つ XIB とストーリーボードを意味します)。
私はこれを作っているわけではありません。WWDC のビデオを見てください。
どうしてそんなことが可能なのでしょうか?Trait コレクションとサイズ クラスは、iOS 8 でしか定義されていません。iOS 8 の新機能である UI 構成に依存するランタイムの動作が、以前の iOS バージョンでどのように動作するのでしょうか?
もしそれが です。 が可能であれば、それは素晴らしいことです。iOS 6、7、8 で動作するアプリを構築し、Apple が Xcode 6 に追加した新しい柔軟な UI レイアウト能力を活用することができるのです。私自身、コードで適応型 UI ロジックを作成したことがありますが、かなり大変な作業でした。
どのように解決するのですか?
Interface Builder でサイズクラスを使用して UI に加えた変更は、iOS 7 デバイスと Xcode のプレビューで正しく表示されます。たとえば、私はいくつかの自動レイアウト制約と Regular height Regular width のフォント サイズを変更しましたが、それらの変更された制約は iOS 7.0 を実行している iPad Simulator で表示されます。
すべてのサイズ クラスの最適化は、コンパクトな高さを持つサイズ クラスを除いて、iOS 7 で使用できるようになります。これは Apple によって確認され、現在では直接 ドキュメントに直接記載されています。 :
iOS 8 より前のバージョンの iOS をサポートするアプリの場合、ほとんどのサイズクラスは下位互換性があります。
サイズクラスは、以下の場合に下位互換性があります。
- アプリは Xcode バージョン 6 以降を使用してビルドされます。
- アプリのデプロイメントターゲットはiOS 8より前のものである
- サイズクラスがstoryboardやxibで指定されている
- heightコンポーネントの値がコンパクトでない
iOS 7 はいくつかのサイズクラスを尊重しないため、それらを使用すると問題が発生します。たとえば、次のようなものです。 Compact w Any h を定義し、Compact w Compact h を定義した場合、iOS 7 では Compact w Any h を尊重しますが、iOS 8 では Compact w Compact h の外観をレンダリングします。
したがって、これらの 2 つのサイズ クラスを使用し、iOS 7 との互換性を維持したい場合は、iPhone のランドスケープでの最適化を Any w Any h または Compact w Any h で行い、必要に応じて別のサイズ クラスの最適化を行うことになります。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン