Xcode 6ストーリーボードのサイズが間違っていますか?


139

Xcode 6(ベータ1)のSwiftでゼロから新しいプロジェクトを構築し、ストーリーボードの奇妙な動作と私が表示している出力を確認しました。

(以下に示すように)シンプルなインターフェースを構築しました-View Controllerのプロパティが含まれています。これをシミュレーターで実行すると、「Hello、World」がユーザーインターフェイスの中心になると期待しますが、この「Square」は単にiPhone画面に収まっているため、間違ったビューが表示されているようです(以下を参照)。 )。

私の質問は、他の誰かがこの動作を見たことがありますか、そしてどのようにしてそれを修正しましたか?

ありがとう!

ストーリーボードエディターからの表示

属性インスペクター

サイズインスペクター

シミュレーター出力


自動レイアウト制約を追加すると、それが修正されます。現在、すべてのレイアウト用に設計しているため、自動レイアウトを使用すると、「適切な」場所にコンテンツを表示できます。
Raz

8
ヒント:アシスタントエディター>自動>プレビューを使用すると、すべての画面サイズの画面のプレビューを表示できます
Francescu

回答:


81

Asif Bilalの答えは、サイズクラス(iOS 8で導入されました)を含まない簡単なソリューションですが、将来のクラスのサイズ設定に慣れることを強くお勧めします。ポイント。"


おそらくレイアウト制約を追加していません。

ラベルを選択し、下部のレイアウト制約ボタンをタップします:

ここに画像の説明を入力してください

そのメニューで、チェックボックスをオンにして幅と高さを追加します(これは私のものと同じであってはなりません)。[制約を追加]をクリックします。次に、Controlキーを押しながらラベルをメインビューにドラッグします。次に、クリックを解除すると、コンテナーの水平方向と垂直方向の中央に配置するオプションが表示されます。両方を追加すると、セットアップが完了するはずです。


1
すばらしい-これは私にとってはうまくいった-あなたの助けをありがとう(タイマーが
上がる

1
どういたしまして。これはautolayoutのデフォルトの動作で、現在デフォルトで有効になっています。画面サイズ/レイアウトが異なる可能性があるため、ビューが親に対して相対的に配置される場所を計算する方法が必要であり、自動レイアウトによりこの問題が修正されます。これらの制約を追加しない場合、viewは実行時に自動的に作成しますが、左上隅を基準にします。それ以外のものが必要な場合(ほとんどの場合、別のものが必要です)、制約を明示的に指定する必要があります。
缶Poyrazoğlu

4
コントロールのドラッグ(扱いにくい場合があります)は必要ないことに注意してください。この画像で選択したボタンの左側にあるボタンは、水平および垂直の中心を固定できるメニューを開きます。
jrturton 2014年

あなたは正しいです。私はコントロールをドラッグするのに慣れているだけなので、そのように言いました。
缶Poyrazoğlu

@CanPoyrazoğlu--あなたは「あなたのラベルを選んでください」と述べます。何のラベル?新しいiPhoneプロジェクトでも同じ問題が発生し、ラベルやその他のUI要素がありません。Xcode 6での最初のプロジェクトであるObjective Cを使用
rattletrap99 '19

253

問題を解決するには、次の手順を実行します

ストーリーボードで任意のビューを選択し、ファイルインスペクターに移動します。[サイズクラスを使用]をオフにすると、iPhone / iPadのサイズクラスデータを保持するように求められます。次に、「サイズクラスを無効にする」ボタンをクリックします。これを行うと、選択したデバイスでのストーリーボードのビューサイズが作成されます。


8
たとえば、標準のiPhoneサイズのビューコントローラーが必要なときに600x600のビューコントローラーを取得する場合は、これが正しい答えです。
Fraggle

5
これは正解でなければなりません(少なくとも非ユニバーサルプラットフォームでのみ動作する場合)
Raptor

36
なぜ人々がこれを正しい答えとしてマークしたのか分かりません...最初の答えはそれが行われるべき方法です...レイアウトの制約が気に入らない場合は、逆方向に進んでいます... Appleは活用していますすべてのサイズのiPhoneおよびiPad向けに開発するための良い方法であり、古いものに戻りたいだけですか?あなた自身を更新する余裕がないので?反対票は投じなかったが、この回答は人々を混乱させ、新しいものを使用するように勧めるのではなく古いアプローチ(非推奨)を使用するように思われる
Raphael Ayres

3
iPhone / iPadストーリーボードに慣れているすべての人のためのトップアンサー
mamarx 2014年

3
レイアウト制約を使用してください... AppleはこれをAndroidと同じ方法で行っています。ビューには形がありません...時々それは苦痛かもしれませんが、サイズを強制すると、アプリは異なるデバイスサイズで見栄えが悪くなります。右下隅にボタンを表示したい場合は、2つの制約を作成して禁止します。XまたはYの選択はありません。すべてエンジンによって設定されます。固有のサイズを使用します。想像力を使って。関係制約を使用します。これを学ぶ***。
Raphael Ayres

18

Xcode 6を使用してiOS 8向けに設計している場合、これらのソリューションはどれも正しくありません。iPhoneのみのビューのサイズを正しく設定するには、サイズクラスを無効にせず、推定メトリックを無効にせず、(まだ)制約を設定しないでください。代わりに、サイズクラスコントロールを使用してください。これは、最初は「wAny hAny」と表示される、Interface Builderの下部にある見逃しやすいテキストボタンです。

ボタンをクリックして、[コンパクト幅]、[標準の高さ]を選択します。これにより、ビューのサイズが変更され、iPhoneのすべての縦向きがカバーされます。Appleのドキュメントはこちら:https : //developer.apple.com/library/ios/recipes/xcode_help-IB_adaptive_sizes/chapters/SelectingASizeClass.htmlまたは「Selecting a Size Class in Interface Builder」で検索


全体を通読するのに便利であるような気がサイズクラスのデザインヘルプからあなたのリンクでは、すなわち、複数のサイズクラスの概要設計以前のiOSバージョンのサイズクラスでアプリケーションを展開します
フランクリンユー

これは、自動レイアウトを維持したいが、ストーリーボードビューを正方形ではなく横長または縦長として表示する場合に最適なソリューションです。
stephenspann 2016年

5

ストーリーボードで、ViewControllerを選択し、Atribute Inspectorに移動します。一番上の[シミュレートされたメトリック]の下には、サイズと方向のプロパティがあり、これらは[推定]に設定されています。それらを必要な値に変更します。

アプリケーションを別の画面サイズで適切に表示するには、最初の投稿でCanPoyrazoğluによって説明されているように、制約を設定する必要もあります。


5

xcode 6でこの問題があり、サイズ変更の競合を解決する方法があります。ビューを選択すると、下部に|-Δ-|のようなアイコンが表示されます。それをクリックすると、プロジェクトはさまざまなデバイス用にサイズ変更されます。


はい、三角形の記号を選択した後、不足している制約を追加してブームをクリックします。ユニバーサルアプリの場合、デバイスのサイズに応じてビューのサイズが変更されます
vishal dharankar

3

属性インスペクタ(右上隅)に移動します。サイズ、方向、ステータスバー、トップバー、ボトムバーのプロパティを持つシミュレートされたメトリックス。SIZEについては、推定->フリーフォームを変更します。


+1 @Rachelは、シミュレートされたメトリックについてのこの役立つ小さなヒントをありがとう->サイズ:「フリーフォーム」(つまり、「カスタムビューに基づく再利用可能なxibのカスタムサイズを有効にする」)。
cweekly 2015年

3

ストーリーボードページで、ファイルインスペクターに移動し、[サイズクラスを使用]をオフにします。これにより、ビューコントローラが使い慣れた通常のIPhoneサイズに縮小されます。「サイズクラス」を使用すると、多くのデバイスでプロジェクトを設計できることに注意してください。これをオフにすると、Xcodeは次のような警告ダイアログを表示します。これは自明です。

「サイズクラスを無効にすると、このドキュメントは単一のデバイスファミリのデータの保存に制限されます。ターゲットデバイスを最もよく表すサイズクラスのデータは保持され、他のすべてのデータは削除されます。さらに、セグエは非-適応同等物。」


3

XCode 7を使用している人にとっては、(デフォルトの四角いキャンバスではなく)特定のデバイスサイズ向けに設計するのが非常に簡単です。

Interface Builderで、左側のメニューからViewControllerまたはSceneを選択します。次にShow the Attributes Inspector、に移動し、ドロップダウンメニューからSimulated Metrics必要なものを選択しSizeます。


そのデバイスのストーリーボードでのみデザインできます。アプリを実行すると、画面サイズによってデザインが大きく異なる場合があります。
Joey Tawadrous

@JoeyTawadrousそのとおりです。しかし、それは尋ねられた質問に答えます:)
プリースト

2

おそらく、「自動レイアウトの問題を解決する」(右下-ストーリーボードビューの三角形のアイコン)を使用して、推奨される制約(Xcode 6.0.1)を追加またはリセットする必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.