Also habe ich benutzt:
%Vor%um die Änderung der Statusleiste zu animieren, von dunkel nach hell und umgekehrt
Diese Methode ist jedoch seit iOS 9 veraltet.
Ich habe geändert, um preferredStatusBarStyle
follow @ sennns Antwort in preferredStatusBarStyle wird nicht aufgerufen
Es kann den Statusbarstil in alter Weise ändern, aber ohne Animationen.
Die Dokumentation sagte:
Wenn sich der Rückgabewert dieser Methode ändert, rufen Sie die setNeedsStatusBarAppearanceUpdate-Methode auf.
Allerdings habe ich keine Ahnung, wo ich es nennen soll, ich habe versucht, es in ViewWillAppear zu bringen, aber kein Glück.
preferredStatusBarUpdateAnimation
bleibt als Standard: UIStatusBarAnimationFade
Ich bin also verwirrt. Suchen nach Antworten zum Animieren als veraltete Methode. Vielen Dank im Voraus!
OK Ich habe zwei Stunden damit verbracht zu suchen und zu versuchen, habe es herausgefunden:
Zuerst müssen Sie sicherstellen, dass Ihr Kind-View-Controller den Statusleisten-Stil im Navigations-Controller durch Überschreiben von preferredStatusBarStyle
like @ sennns Antwort in preferredStatusBarStyle wird nicht aufgerufen
Um Animation zu erhalten, muss ich zwei verschiedene Stile vor und nach dem View-Controller wie folgt zurückgeben:
%Vor% viewAppeared
ist ein BOOL, um anzugeben, ob viewWillAppear
aufgerufen wird:
Wenn der View-Controller nicht angezeigt wird, lautet der Statusleistenstil UIStatusBarStyleDefault
und wird in UIStatusBarStyleLightContent
in viewWillAppear
geändert.
Rufen Sie dann setNeedsStatusBarAppearanceUpdate
auf, um die Änderung wie unten zu aktualisieren. Beachten Sie, dass animateWithDuration
ein Muss für Animationen ist.
Ich habe früher herausgefunden, dass du preferredStatusBarStyle
nicht zuerst wie unten aufrufen musst, setNeedsStatusBarAppearanceUpdate
wird preferredStatusBarStyle
erneut aufrufen:
Obwohl diese Lösung das Problem löst, entscheide ich mich nicht, es für jetzt zu verwenden. Ich kann das gleiche Ergebnis mit nur einem Zeilencode haben, aber es ist jetzt viel zu viel Code, den ich schreiben muss. Die veraltete API löst momentan noch keine Warnung aus. Bis Apple mich dazu drängt, mich zu ändern, werde ich nicht auf diese Weise arbeiten. Wenn die Zeit kommt, hoffe ich, dass es dann eine gute Lösung gibt.
Ich bin sehr verwirrt, warum Apple den einzeiligen Code ( [UIApplication sharedApplication] setStatusBarStyle]...
), der alle Tricks ausführen kann, nicht mehr verwendet, aber ein komplizierteres verwendet, um dasselbe Ergebnis zu erzielen. Auch wenn Sie feinere Kontrolle geben wollen, muss Apple das alte nicht mehr ablehnen.
Aber vielleicht habe ich gerade jetzt nicht das beste gefunden. Hoffe, jemand könnte mich erleuchten.
Tags und Links ios