2016-07-03 25 views
0

Ich habe einen TabBarController mit 4 Registerkarten.Auto-Layout-Problem beim Entfernen einer Registerkarte aus einem Tab-Controller

Eine der Registerkarten hat eine UIView mit mehreren Beschriftungen & Schaltflächen.

Diese UIView selbst hat eine Einschränkung ‚Top‘ zum Anfang Leitfaden für das Layout Bottom Set 88.

Dies ist die Entfernung zu der Navigationsleiste ist.

Ich habe einen Fall, wo ich einige der anderen Registerkarten zur Laufzeit zu entfernen, die ich auf dem TabBarController viewDidLoad tun mit:

tabBarViewControllers?.removeAtIndex(index) 

Das Problem, das ich habe ist, dass wenn ich eine der anderen entfernen Tabs, die obige Einschränkung ist "verloren", sobald ich versuche, mit dem Tab-Bildschirm zu interagieren.

Irgendeine Idee, was könnte "brechen"/die Beschränkung ändern? Es gibt keine Fehlermeldungen und wenn man sich die X, Y-Koordinaten anschaut, sieht es so aus, als ob die Beschränkung an den Anfang der Registerkarte angepasst wäre, als ob es keine Navigationsleiste gäbe (obwohl sie auf dem Bildschirm deutlich sichtbar ist).

Update: Nach einer näheren Untersuchung der X, Y-Koordinaten beim Start des TabBarControllers mit allen Tabs und ohne einige der Tabs, ist es 100% klar, dass beim Entfernen der Tabs ich die Höhe "verliere" der Statusleiste und der Höhe der Navigationsleiste, so dass die Y-Koordinate der Ansicht 80 statt 152 (= 80 + 44 (Navigationsleiste) + 22 (Statusleiste) + 6 (an anderer Stelle eingestellte Auffüllung)) ist.

Während in der Theorie kann ich hart Code der zu 152 versetzt, würde ich eher verstehen, warum bin ich die „Höhen“ der Navigationsleiste zu verlieren und die Statusleiste ...

+0

Ich versuchte mit der Konstante von 88 (was ich brauchte) und es hat nicht funktioniert. Warum schlägst du eine Konstante von 0 vor? – goggelj

Antwort

0

Gefunden ein ähnliches Problem here. Obwohl es mein Problem nicht gelöst hat (ich benutze nicht scrollView), brachte es mich dazu, erneut darüber nachzudenken, wie ich die Beschränkung festlegte.

Um mein Problem zu lösen, habe ich den vertikalen Abstand zur Hauptansicht als Gegensatz zur Navigationsleiste eingestellt (ich habe das Pin-Menü im Storyboard verwendet und die vertikale Beschränkung darauf gesetzt).