2016-10-05 8 views

答えて

3

私が考えることのできるアプローチにはいくつかの方法があります。

使用コンテナビュー

最初は、コンテナとして動作するようにsuperViewUIViewを追加することです。このコンテナビューは、ナビゲーションバーの下部とタブバーの上部に「固定」できます。

この容器にオレンジ色の図を追加します。拘束条件を上、左、右に固定します。その後、コンテナと0.5の乗数と同じ高さを与えることができ、それはナビゲーションバーとタブバーの間の高さの半分になります。

は、他の方法は、スペーサビューを使用することです

「スペーサー」ビューを使用します。オレンジ色のビューを追加し、その下に別のビューを追加します。それらをそれぞれナビゲーションバーとタブバーに固定し、それらの間に垂直間隔を0に設定します。

ここで、それらの高さを同じにします。

これにより、両方がナビゲーションバーとタブバーの間のスペースの半分を占めるようになります。

"スペーサービュー"を非表示にします。非表示になりますが、制約は引き続き有効です。

いずれも、デバイスのサイズや向きに関係なく動作します。また、エッジケースのためsatnavガイダンスや着信コールはナビゲーションバーなどの高さを...変更した場合のように

+0

@Frgmeister私は1番目の方法を使用しましたが、問題が発生しています。あなたにスクリーンショットを見せたいのですが、どうすればいいのですか? –

+0

フレームを更新しましたが、完成しましたが、シミュレータとデバイスで予期したとおりにプレビューが実行されていますが、プレビューに間違ったプレースメントが表示されるのはなぜですか。また、警告は表示されません。 –

0

非常に簡単ですが、次の制約を追加してください。

ビューをスーパービューに固定する左右の制約。

ナビゲーションバーをオフセットするために定数64でスーパービューするための上部制約固定ビュー。

スーパービューと同じ高さの制約。この制約の乗数を0.5に変更し、定数を-54(ナビゲーションバーの64ptの半分+ステータスバーと44ptタブバーの半分)に変更し、フレームを更新します。

ジョブが完了しました。 :)

+0

いや、スーパーは、画面の一番下に、画面の上から行きます。ナビゲーションバーの下部からタブバーの上部までではありません。 – Fogmeister

+0

タブバーコントローラ、ナビゲーションコントローラ、または手動タブバーとナビゲーションバーを使用していますか? –

+0

OPのスクリーンショットに行くと、私はそう言っています。だから、これが最初の問題です。 – Fogmeister

2

@Fogmeisterあなたは

ピンそれらの両方をスペーサービューを使用して行うことができます述べたように、その高さEqual Height

青色の表示Hiddenを設定します。

enter image description here

関連する問題