Ich habe mit Auto-Layout in Interface Builder eingerichtet. Ich möchte keine Ansichten verwerfen, die an den oberen Layout-Guide angeheftet sind, wenn ich die Statusleiste in Runtime ausgeblendet habe.iOS7 ausblenden Statusleiste, aber nicht Top-Layout-Guide
Ich habe festgestellt, dass myViewController.topLayoutGuide.length
von 20 auf 0 wechselt, wenn die Statusleiste ausgeblendet wird. Wie man es verhindert? Oder (als Workaround), wie Sie die Vollbildansicht für verschiedene Fenstergrößen ohne Pin to Top Layout Guide einrichten?
Einige Code meine Situation zu beschreiben:
Log(@"frame: %@, top: %.0f", NSStringFromCGRect(myViewController.myView.frame), self.topLayoutGuide.length);
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
Log(@"frame: %@, top: %.0f", NSStringFromCGRect(myViewController.myView.frame), self.topLayoutGuide.length);
Ausgang:
frame: {{40, 24}, {240, 40}}, top: 20
frame: {{40, 4}, {240, 40}}, top: 0
Nicht ganz klar, was Sie erreichen wollen. Versuchen Sie, dass die Ansicht die Elemente an einem festen Ort anzeigt, unabhängig davon, ob die Statusleiste angezeigt wird oder nicht? Oder ist das ein iOS6/7-Switching-Problem? Sie können die Statusleiste in IB auch ausblenden, wenn dies Probleme beim Layout von Komponenten im Vergleich zum Laufzeitergebnis verursacht. – Ben
Ich verberge Statusleiste in Runtime und in diesem Moment UI verschiebt. Der Grund ist in 'topLayoutGuide'. Ich möchte die Benutzeroberfläche beibehalten, wenn sich die Statusleiste verbirgt. – brigadir
Zeigen Sie die Ansicht und entfernen Sie dann die Statusleiste oder geben Sie an, dass die Statusleiste nicht angezeigt wird, bevor die Ansicht angezeigt wird? – Ben