, wie Statusleiste Stil Änderung seit iOS 9 zu animieren

8

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!

    
Wingzero 29.10.2015, 04:18
quelle

1 Antwort

12

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:

%Vor%

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.

%Vor%

Ich habe früher herausgefunden, dass du preferredStatusBarStyle nicht zuerst wie unten aufrufen musst, setNeedsStatusBarAppearanceUpdate wird preferredStatusBarStyle erneut aufrufen:

%Vor%

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.

    
Wingzero 29.10.2015 06:52
quelle

Tags und Links