2015-10-08 5 views
10

私は、必要に応じて複数のビューと制約を設定してサイズを変更できる単純なレイアウトです。シミュレータまたはデバイスにアプリをデプロイすると、すべてのビューのX、Y、Widthが適切なサイズになります。一方、高さは常に0です。すべてのビューはスーパービューに従って比例する高さを持ちます。ポートレートのレイアウトは、向きを横向きに変更して肖像画に戻した後にのみ正しく表示されます

ここで、向きを横向きにしてから再び縦向きにすると、すべてが正しく表示されます(高さはもはや0になりません)。

私は以前に比例した高さと同じロジックを使用しました、と私はXcodeのにあなたがから.xibを得ることができます 7.

EDITを更新した後、新たに作成されたビューコントローラと、この問題を見て開始しました:http://1drv.ms/1M81EUQ

+0

は、あなたの制約が設定されている方法の詳細情報が必要ですか?あなたに制約がありません。 – Ben

+0

コード内の関連するビューについて何か変更していますか?あなたがコードの高さを決定するいくつかのコンテンツを追加しているように私には聞こえますが、デバイスが回転するまでビューは再描画されません。たぶんあなたはどこかに必要なレイアウトを忘れてしまったでしょうか? – JWKothe

+0

@ProgrammingBonnいいえ、私はコードで何も変更していません。私はちょうどXIBのレイアウトを持って、それをロードしています。 –

答えて

1

自動マスクのサイズ変更を使用するか、またはこれを修正するために自動レイアウトを使用する場合は、向きの変更に関する異なるビュー更新メソッド呼び出しを設定する必要があります。

+0

あなたが何を意味しているかを正しく理解していませんが、それがあなたが提案しているものなら自動レイアウトを使用しています。 –

+0

私はあなたの視点で撮影したIBoutletの高さと幅を設定していないと思っていました。下のスペースを同じかそれ以下に設定してください。 –

+0

わかりません。あなたは編集を気にしますか?質問にリンクされているxibファイルを編集し、それを変更してどこかにアタッチすると、何を意味するのか分かりますか?ありがとう。 –

1

.xibはサイズクラスを有効にして構成されましたが、ビューと制約はすべて、コンパクト幅、通常の高さにのみ適用されるように構成されています。

wC hR is Checked, Any Any is not

私が通過したと任意の幅に適用するビューと制約を変更し、任意の高さ、そしてこれは、景観のレイアウトの問題を解決しました。

Download the modified .xib file here

私は自動レイアウトで作業する場合、それはあなたが同時に複数の方向で複数のデバイスを参照できるようになると、Xcodeの7のプレビューアシスタントビューを使用することをお勧めします。これは、レイアウトが縦長ではあるが、横長ではないことを示すと、このケースで本当に役立ちました。

これはPreview of populated portrait but empty landscape views

そしてPreview showing populated portrait and landscape

はどのようにこれが起こっている可能性が私の.xibの変化に を提供するように私はあなたの.xibで見たものは? 1つの方法は、誤って特定のサイズクラスにストーリーボードエディタを設定している可能性があります。エディタの下部に青色の境界線が表示された場合、追加するものは、その特定のサイズクラスにのみインストールされるように設定されます。表示されているサイズクラスをクリックすると、wに変更されます。任意hデフォルトのモードに戻るには、Anyを選択します。あなたがコードやストーリーボードファイルを共有することができます -

Blue bar at the bottom of the storyboard editor

+0

それを見ていただきありがとうございます。私の問題は風景モードでは機能しませんでしたが(このページは肖像画のみで使用されます)問題は、ポートレートページを正しく表示するために、向きを変更する必要があるため、ポートレートに戻ったときにすべてが正しく表示されることです。また、ポートレイトのプレビューはすべて問題なく、実際のデバイスやシミュレータで実行した場合にのみ表示されます。 –

関連する問題