ナビゲーションコントローラをその子として、最上位にUITabBarControllerを持つアプリケーションを作成しています。私がタブから最初の画面に移行すると、VC.viewのフレームは(0.0、0.0、375.0、618.0)であり、別のVCに切り替えると、そのVCのVC.viewのフレームは(0.0、0.0、375.0 、667.0)。違いは49なので、TabBarの高さが最初に考慮されているが、これをスタックにさらに適用しないため、これが仮定されています。私はこれらの数値に基づいて比例的な制約を使います。任意のオプションがあるので、常にtabBarの高さを削除するか、常に高さを削除しないオプションがあります。私はちょうどすべてのメインVCのビューの高さが等しいセットアップが欲しいです。すべての子孫のVCののviewDidLoad(でこれを置くメインビューの高さがviewControllersの間で変化しています。どうすればそれらを同じに保つべきですか?
は)私の問題修正されます。
let size = CGSize(width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height - tabBarController!.tabBar.frame.height)
view.frame = CGRect(origin: .zero, size: size)
をが、これは私にはハック感じと切り替えるオプションや設定を好むだろう。
私が作成したビューは参照していませんが、各UIViewControllerのトップレベルビューです。 – Sethmr
@Sethmrもしそうなら、すべてのサブビューが 'viewDidLayoutSubviews'でレイアウトを終了した後で、ビューの高さを測定して、そこにあなたの制約を更新してください。 –
これは、フレーム値を印刷した場所です。私はかなりiOS賢明です....私はちょうど私が何かを欠場していた場合、これを一緒にハックしたくなかった。 – Sethmr