2012-03-26 11 views
19

私はストーリーボードを使用する普遍的なアプリを持っています。 iPhoneのストーリーボードとiPadのストーリーボードがあります。しかし、インターフェースビルダーでは、iPadのストーリーボード用のビューコントローラーはまだiPhone向けのサイズになっています。 iPadのストーリーボードにiPadサイズのビューコントローラを表示するにはどうすればよいですか?Xcodeストーリーボード:iPadのストーリーボードにiPhoneのサイズ表示が表示されるのはなぜですか?

私は、インターフェイスビルダーのビューコントローラの表示はデザイン時のみのアイキャンディですが、iPhoneサイズのVCを使用すると、UIを正しく配置することが非常に難しくなります。

答えて

53

ストーリーボードのソースコードを掘り下げた後、iPadのストーリーボードがiPhoneのストーリーボードからコピーされたことが判明しました。だから、本当に質問はiPhoneのストーリーボードをiPadのストーリーボードに変換する方法となったのですか?

答えは驚くほど簡単です。 > ソースコード

- Xcodeのより

  1. 、ストーリーボード上で右クリックして[開く] Asを選択します。以下を行い、計算されたストーリーボードにiPhoneのストーリーボードを変換する- 私はthis SO answer渡って走りましたtargetRuntime="iOS.CocoaTouch"ため

  2. 検索し、それを変更targetRuntime="iOS.CocoaTouch.iPad"

  3. 右クリックし、[開くように再びストーリーボード上で選択します - > iOSのストーリーボード

ストーリーボードに、すべてのビューが正しいサイズで表示されるようになりました。

+0

ありがとうございました。これは私を夢中にさせていた。 – rmvz3

+1

マイケルありがとう!メモとして、これはXIBでも行うことができます。 XIB xml(ドキュメントタグ)のルート要素には、 "targetRuntime"と同じ参照があります。マイケルがそこにアドバイスするようにしてください。 – bladnman

+0

私はこれをして、プレビュー用のiPadを表示します(iPhoneはなくなりました)。どんな考え? – Kashif

7

最初にストーリーボードを作成するときは、ストーリーボードが対象とするデバイスファミリ(iPhoneまたはiPad)を選択します。ストーリーボードがすでに作成されていると、デバイスファミリを変更する方法はわかりません。

はしかし、あなたの問題を解決するために、私は次のことをお勧めします。

に行くことによって、新しいストーリーボードを作成します:新規 - >ファイル - >ユーザインタフェース - 選ぶとき>ストーリーボードは、(デバイス・ファミリ=のiPadを選択してくださいオプション)。

古いストーリーボードに移動し、Command-A、Command-Cを押してすべてを選択してコピーします。次に、Command-Vを押してすべてを貼り付けます。あなたのView ControllerはiPadサイズになりました。

古いストーリーボードを削除し、新しいストーリーボードの名前を古い名前に変更することができます。

+0

実際にストーリーボード全体をコピー/ペーストすることができます。 –

+0

うわー、これが可能だったのか分かりませんでした、ありがとう!よく働く。 – tcd

+0

新しいストーリーボードを作成すると、デバイスファミリの選択ができません。 Xcodeのバージョンは6.2です。 – septerr

0

私はiPhoneのストーリーボードをiPadのストーリーボードに変換するために提案された回答を使用しました。これは私の意見の大部分に役立ちました。しかし、私は、ビューの1つがまだiPhoneのストーリーボードのサイズであることに気付きました。その理由は、1つの背景画像のすべてのプロパティをロックしていたためです(私は誤って移動したくないためです)。ロックを解除すると、ビューがiPadサイズに戻りました。これは、誰かがこれについているのを助けるかもしれない。

+0

iPad用のiPhoneストーリーボードもコピーしました。すべてのビューは2つのtextViewだけで正常に動作しています。このロックを無効にする方法や、私のiPhoneのストーリーボードに何もロックしていないため、このオプションが利用可能な場所を教えてください。おかげで – Husyn

0

[ターゲット]> [一般]で正しいストーリーボードを設定していることを確認してください。私のiPadのストーリーボードと同じストーリーボードをiPhone用に設定する前に、このようなものは3時間も頭がおかしくなります。

0

Xcode 6.2ではtargetRunTimeを変更しても機能しませんでしたが、ビューを手動でコピーするこの2番目の方法がそのトリックでした。

3

この回答は解決策ではありませんが、そのようなことが起こる理由の1つを得るのに役立ちます。あなたは無効にしようとすると、

問題が発生します。

「使用自動レイアウト」

あなたはそれをオフにすると、ポップアップウィンドウが表示されます。選択があります:

"のサイズクラスのデータを保管してください:iPhoneを" デフォルトで、iPhone(あなたが作成したどんなにiPadやiPhoneプロジェクト)が選択されています。

あなたがそれに言及しない場合は、ストーリーボードは自動iPhoneのサイズに変換されます。

正しいデバイスを選択することを忘れないでください。

+0

クール!!これは私のためにそれをやった – becker

関連する問題