[解決済み] iOS 5との後方互換性を維持しながら、iOS 6で自動レイアウトを有効にする
質問
iOS 6の新しいオートレイアウト機能を利用しつつ、iOSの旧バージョンで古いデバイスとの互換性を保つには、どのような方法がありますか?
どのように解決するのですか?
オートレイアウトは、.storyboardファイルまたは.xibファイルごとに有効または無効にすることができます。ただ、特定のファイルを選択し、XcodeのFileインスペクタを使って、"Use Autolayout"プロパティを変更するだけです。
iOS 6.0 以前のバージョンをデプロイメントターゲットに設定し、オートレイアウトを有効にしたインターフェイスファイルを使用すると、コンパイルエラーになるなど。
MainStoryboard.storyboard:3 でエラーが発生しました。6.0より前のiOSバージョンでの自動レイアウト
プロジェクトでautolayoutを使用し、かつiOS4-5との互換性を保つためのオプションの1つは、以下の2つを作成することです。 ターゲット : 一つはデプロイメントターゲットのiOS 6.0用、もう一つはそれ以前のiOSバージョン用、などです。
ストーリーボードとXIBファイルについても、それぞれ2つのバージョンを作成し、オートレイアウトを有効にしたものを6.0ターゲットで、もう一方をレガシーターゲットで使用するといったことが可能です。
そして、iOS6ターゲットのBuildフェーズにMainStoryBoardAutoSizeを、iOS4ターゲットにもう1つのファイルを追加します。複数のターゲットを使用する方法については、以下を参照してください。 こちら .
EDIT:として marchinramの回答 ストーリーボード・ファイルをコードから読み込み、Xcodeの "Main Storyboard" 設定を使用して初期ストーリーボードを設定しない場合、単一のターゲットを使用することができることを指摘しています。
私にとっては、複数のターゲットとインターフェイスファイルを管理する複雑さが加わるコストは、autolayoutを使うメリットを上回ると思われます。iOS4-5との互換性が必要な場合は、特殊なケースを除いて、古いオートサイジング(またはコードからのlayoutSubViews)だけを使用する方がはるかに良いでしょう。
関連
-
[iOS]コンパイルエラー:ld: アーキテクチャ x86_64 のシンボルが見つかりません。
-
[解決済み] iOSまたはmacOSで、インターネット接続が有効かどうかを確認するにはどうすればよいですか?
-
[解決済み] 制約条件の変更をアニメーションで表現するには?
-
[解決済み] Xcodeにおけるバージョンとビルドの比較
-
[解決済み] フレームワークを使用したiOSアプリがデバイス上でクラッシュ、dyld: ライブラリがロードされない、Xcode 6 Beta
-
[解決済み] CocoaPodsの最新バージョンにアップデートしますか?
-
[解決済み] iOS 13でダークモードをオプトアウトすることは可能ですか?
-
[解決済み] ファイルはユニバーサル(3スライス)ですが、iOSの静的ライブラリのための(n)ARMv7-sスライスエラーが含まれていない、どうにかして回避するには?
-
[解決済み] Cocoapods警告 - CocoaPodsがプロジェクトの基本構成を設定しなかった理由は、プロジェクトに既にカスタム構成が設定されているためです。
-
[解決済み] ビューを非表示にしたときに、オートレイアウトで他のビューを移動するには?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
XCode のコンパイル例外を解決する clang: error: linker command failed with exit code 1
-
[解決済み] iOSのステータスバーの文字色を変更する方法
-
[解決済み] iOS 13 のフルスクリーンでモーダルを表示する
-
[解決済み] UITextViewのサイズをコンテンツに合わせるには?
-
[解決済み] Swiftを使用してアプリのバージョンとビルド番号を取得するにはどうすればよいですか?
-
[解決済み] iOS - UITextFieldの外側をタッチするとキーボードが外れる。
-
[解決済み] SwiftでiOSキーボードを任意の場所でタッチして閉じる
-
[解決済み] iOS 7でステータスバーとナビゲーションバーがビューの境界を越えて表示される
-
[解決済み] iPadマルチタスクのサポートには、これらの方向が必要です。
-
[解決済み] 16進カラーバリューの使用方法