Ich habe versucht, UINavigationBar
vor dem Verschieben / Ändern der Größe zu bewahren, wenn Sie setNeedsStatusBarAppearanceUpdate
aufrufen.
Ich möchte die Navigationsleiste auf volle 64px Höhe halten, wenn die Statusleiste mit Animation ausgeblendet wird.
Jede Hilfe wäre willkommen!
UPDATE : Ich konnte dieses Problem lösen, indem ich ein neues UIWindow
erstelle und die Statusleiste verdecke.
Ich hatte das gleiche Problem und konnte es beheben, indem ich windowLevel in UIWindowLevelStatusBar änderte
Sie können dies tun, indem Sie
drückenIch habe diese Lösung nach zahlreichen fehlgeschlagenen Versuchen implementiert, das Stottern zu beheben, das beim Wechseln zwischen Ansichtscontrollern auftritt, wo eine Statusleiste angezeigt wird und eine andere nicht. Dies ist die beste Lösung, die ich gefunden habe.
Ich habe 1. in einer Unterklasse von UINavigationController. Ich gehe davon aus, dass dies die beste Option ist, um konsistent zu bleiben, wenn Sie durch die Sub-View-Controller eines Navigationscontrollers gehen. Ich habe die andere Option jedoch nicht getestet (direkt in den Unter-VC).
Warum funktioniert das und warum ist das der beste Weg zu gehen?
Die Navigationsleiste ist eigentlich immer 44 Punkte hoch (wie Kommentatoren bereits erwähnt haben), aber die 20-Punkte-Statusleiste drückt sie nach unten. Wenn Sie die gesamte Ansicht um denselben Betrag (20) nach unten verschieben, wird das konsistenteste Verhalten sichergestellt. Wann immer Sie versuchen, die UINavigationBar direkt zu manipulieren, wird iOS sehr lange dauern, um diese Änderung umzukehren.
Tags und Links objective-c iphone ios cocoa-touch