web-dev-qa-db-ja.com

Xcodeストーリーボード:iPadストーリーボードにiPhoneサイズのビューが表示されるのはなぜですか?

ストーリーボードを使用するユニバーサルアプリがあります。 iPhoneストーリーボードとiPadストーリーボードがあります。ただし、Interface Builderでは、iPadストーリーボードのビューコントローラーはiPhone用のサイズのままです。 iPadストーリーボードにiPadサイズのビューコントローラーを表示するにはどうすればよいですか?

Interface Builderのビューコントローラーの表示はデザイン時だけの目玉だと思いますが、iPhoneサイズのVCを使用すると、UIを正しくレイアウトするのが非常に難しくなります。

21
memmons

ストーリーボードのソースコードを少し調べたところ、iPadのストーリーボードがiPhoneのストーリーボードからコピーされたことがわかりました。では、iPhoneのストーリーボードをiPadのストーリーボードに変換するにはどうすればよいのでしょうか。

答えは驚くほど簡単です。私は遭遇しました this SO answer -iPhoneストーリーボードをiPadストーリーボードに変換するには、次のようにします

  1. Xcodeからストーリーボードを右クリックし、[名前を付けて開く]-> [ソースコード]を選択します

  2. targetRuntime="iOS.CocoaTouch"を検索し、targetRuntime="iOS.CocoaTouch.iPad"に変更します

  3. ストーリーボードをもう一度右クリックして、[名前を付けて開く]-> [iOSストーリーボード]を選択します

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

60
memmons

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

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

[新規]-> [ファイル]-> [ユーザーインターフェイス]-> [ストーリーボード]に移動して、新しいストーリーボードを作成します(オプションを選択するときは、必ず[デバイスファミリー] = [iPad]を選択してください)。

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

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

7
jonkroll

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

この問題は、以下を無効にしようとすると発生します。

「自動レイアウトを使用する」

チェックを外すと、ポップアップウィンドウが表示されます。選択があります:

"Keep size class data for:iPhone"、デフォルトで選択されていますiPhone(作成したiPadまたはiPhoneプロジェクトに関係なく)。

言及しない場合、ストーリーボードは自動変換されますiPhoneサイズ

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

3
Nazir

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

0
Andrew

Xcode 6.2ではtargetRunTimeの変更は機能しませんでしたが、ビューを手動でコピーするこの2番目の方法でうまくいきました。

0
RikMaxSpeed

私のユニバーサルアプリでは、メインのビューコントローラーにSpriteKitを使用していました。 SKScene.scaleModeaspectFillに設定されました。 iPadシミュレーターで実行すると、アプリはiPhoneモードで起動しました。解決策はscaleMode = .resizeFillを設定することでした。

0
neoneye

[ターゲット]> [一般]で正しいストーリーボードを設定していることを確認してください。このちょっとしたことで、iPadのストーリーボードと同じストーリーボードをiPhoneに設定したことに気付く前に、3時間頭痛がします。

0
mfnugraha