Ich migriere derzeit meine App auf iOS 7 und bin stundenlang mit dem neuen Navigationscontroller / Bar-Management beschäftigt.
Früher, als wir einen Navigationscontroller hatten, hatten wir einen Ausschnitt wie diesen:
UINavigationController *navController = [[UINavigationController alloc]initWithRootViewController:[[MainViewController alloc]init]];
Im Interface Builder hatten wir die Wahl, eine vorhandene Navigationsleiste für die Ansicht festzulegen, und alles entspricht dem Inhalt der realen Ansicht.
OK, jetzt habe ich keine Ahnung, wie ich mit dem Interface Builder richtig entwerfen soll. Ich habe immer noch mein Snippet, um meinen Navcontroller zu initialisieren. Wenn ich jedoch im Interface Builder für meinen MainViewController eine Statusleiste auf eine durchscheinende oder undurchsichtige Navigationsleiste setze, habe ich oben einen Versatz von 44 Pixel (siehe unten).
Interface Builder_________________________Und das Ergebnis
Wenn ich nun die Statusleiste auf keine setze, gibt es oben keinen Versatz, aber da die Ansicht im Simulator aufgrund der Navigationsleiste kleiner ist, wird der untere Rand der Ansicht im Interface Builder abgeschnitten.
Interface Builder_________________________Und das Ergebnis
Ich denke, ich vermisse hier wirklich etwas, aber ich kann kein Thema oder Apple-Informationen im iOS7 Transitions Guide dazu finden.
Danke für Ihre Hilfe
BEARBEITEN
Wie wir auf den Bildern sehen können, ist das erste untergeordnete Element der Ansicht eine UIScrollView, die beide Beschriftungen enthält. Das Problem tritt nicht auf, wenn keine Bildlaufansicht vorhanden ist. Es wird auch angezeigt, wenn es sich um eine UITableView handelt. Befindet sich eine Beschriftung außerhalb von UIScrollView, gibt es keinen Versatz zu dieser Beschriftung.