0

iPadのビューコントローラ(スプリットビューコントローラの詳細ビューとしてのナビゲーションコントローラ内)には、ナビゲーションバーが表示されたtopLayoutGuideの長さが64、ナビゲーションバーが隠された20があります。意味あり。iPhoneとiPadでtopLayoutGuideの長さが異なるのはなぜですか?

風景のiPhoneでは、ステータスバーが自動的に非表示になり、ナビゲーションバーが短くなります。 topLayoutGuideの長さは、表示されているナビゲーションバーでは32、隠れている場合は0です。これも意味をなさない。

ただし、iPhoneのポートレートでは、topLayoutGuideの長さは44で、ナビゲーションバーは表示され、0は非表示になっています。ステータスバーは自動的に表示されます。なぜtopLayoutGuideは余分な20ピクセルのスペースを認識しないのですか?

iPhoneがtopLayoutGuideを正しく読み込めるように、私は不快な条件付きコードを書いていません。 topLayoutGuideの直感的な値を返すように設定できるビューまたはナビゲーションコントローラのプロパティはありますか?スプリットビューコントローラの中にいることとは何か関係がありますか?

答えて

0

これは好きではありません。 toplayoutガイドは、ipadとiphoneの両方で常に同じにする必要があります。カウントを間違えている場合は2回点検してください。

VC内の1つのビュー(ナビゲーションバーなし)をドラッグしてy=20に配置し、次にピンをクリックして、ドロップダウン矢印をクリックして上部をチェックすると、デフォルトで再生ガイドからの距離が表示されます。

それのスクリーンショットを参照してください。

enter image description here

は今、あなたはiphone or ipadでこの制約して、オープンをピンならば、それは正確なステータスバーの上に残っているだろう、ビューの端から下に20ピクセルを意味します。

0 distance with layout guideを維持するように、制約レイアウトを0 distance (constant = 0)に設定しているので、エッジから20ピクセル下に見えます。

あなたが問題と言っているように、プレイガイドが0になったら、このビューは管理しているので0に近づくはずです。そして、あなたのレイアウトガイドは0でなければなりませんので、ビューはエッジに触れなければならないか、それはyのだゼロですが、それは私があなたには、いくつかの間違った計算をしていると言うことができるように起きていない

これは残念ながら:)

+0

を助けることを願っていますが、私は私はIBでそれに何も固定していません、私はちょうどコードでそれを読んでいます: int rideTop = [self.topLayoutGuide length]; 次に、その値に基づいていくつかのラベルを配置します。しかし、私はその価値NSLog、私は前に述べた矛盾した値を取得します。 (そのコードは、分割ビューコントローラの詳細ビューであるビューコントローラにあります。) –