Ich erstelle eine App mit einem UITabBarController auf der obersten Ebene mit Navigationssteuerungen als Kinder. Wenn ich von einer Registerkarte zum ersten Bildschirm übergehe, ist der Rahmen von VC.view (0.0, 0.0, 375.0, 618.0) und wenn ich dann zu einem anderen VC übergehe, ist der VC.view-Rahmen für diesen VC (0.0, 0.0, 375.0 , 667.0). Da die Differenz 49 ist, gehe ich davon aus, dass die Höhe der TabBar beim ersten Mal berücksichtigt wird, aber nicht weiter unten im Stack. Ich verwende eine proportionale Abhängigkeit basierend auf diesen Zahlen. Gibt es eine Option, so wird immer die TabBar-Höhe oder eine Option, die immer die Höhe nicht entfernen wird. Ich möchte nur ein Setup, bei dem die Ansichtshöhe jeder Haupt-VC gleich ist.Die Höhe der Hauptansicht ändert sich zwischen den ViewControllern. Wie soll ich sie gleich behalten?
Platzierung dieses in viewDidLoad() alle Nachkommen VCs behebt mein Problem:
let size = CGSize(width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height - tabBarController!.tabBar.frame.height)
view.frame = CGRect(origin: .zero, size: size)
aber das fühlt sich an mich Hacky und würde eine getoggelt Option oder Einstellung bevorzugen.
Ich verweise nicht auf Ansichten, die ich erstelle, sondern die oberste Ansicht für jeden UIViewController. – Sethmr
@Sethmr Wenn ja, stellen Sie sicher, dass Sie die Ansichtshöhe messen, nachdem alle Unteransichten ihr Layout in "viewDidLayoutSubviews" beendet haben, aktualisieren Sie dort Ihre Einschränkungen –
Das ist genau, wo ich die Rahmenwerte ausgedruckt habe. Ich bin ziemlich iOS Savvy .... Ich wollte nur nicht zusammen hacken, wenn ich etwas verpasst habe. – Sethmr