Animieren Sie die nav-Leiste Titel-text ändern

In meiner app habe ich eine page-view-controller ermöglicht es dem Benutzer, um zu wischen zwischen verschiedenen "Abschnitte" der app und oben in der nav-Leiste ändere ich den Titel-text für den neuen Abschnitt der Benutzer hat geklaut, um über pageViewController:didFinishAnimating:previousViewControllers:transitionCompleted:. Es ist derzeit sofort ändern Sie text für den Titel, wenn die animation abgeschlossen ist. Ich möchte, um dies zu verbessern, mit einigen Animationen, subtile verblassen in und-out-Effekt.

Zuerst habe ich versucht zu implementieren [UIView animationWithDuration:...] zu animieren, ändern Sie text für den Titel, aber es hat keine animation und einfach nur noch updates sofort.

Dann fragte ich mich, ob es wäre möglich, ein update der alpha von der nav-Leiste Titel wie der Benutzer scrollt horizontal auf der Grundlage, wie weit Sie einen Bildlauf durchgeführt haben, erreichen 0 alpha, wenn der nächste Abschnitt ist zu kommen auf dem Bildschirm, dann kann ich sofort ändern den text, während es bei 0 und dann schnell fade-in, 1-alpha. Aber ich sehe nicht ein, eine Methode, die auf UIPageViewControllerDelegate, die aufgerufen wird, wenn die scroll-position aktualisiert hat.

Wenn möglich, anstatt nur ein-und ausblenden, ich könnte verblassen, wie verschieben Sie text für den Titel der position in der nav Leiste wie die Standard-animation, die Auftritt, wenn die Navigation wieder von einem push segue über eine swipe-Geste. Ich würde schieben Sie den alten Abschnitt-Titel über die Benutzer-Rollen und stellen im nächsten Abschnitt den Titel auf der anderen Seite, so dass, wenn der übergang abgeschlossen vorherigen Abschnitt Titel ist off-screen und das neue ist perfekt zentriert, so dass der Austausch abgeschlossen ist. Aber auch dies muss man wissen, wie viel genau, hat der user gescrollt die Seite view controller.

Ist es möglich, implementieren die gewünschten Animationen?

Haben Sie versucht, mithilfe einer benutzerdefinierten Ansicht für die navigation Titel? selbst.navigationItem.titleView = customNavTitleLabel;
Ich noch nicht, werde ich nachgehen. Gibt es eine Möglichkeit, um die UILabel aus dem vorhandenen Titel, so dass ich ergreifen können, default wird (es ändert sich mit Fett formatierter Text aktiviert ist), ändern Sie es und legen Sie es auf die gezwickt?
Ich glaube, ich habe Leute gesehen, die benutzen, ein paar verrückte rekursive Schleife zu finden, der nav-Titel Untersicht 😛 Sie können versuchen, wenn Sie wollen.
Danke @Zhang. Ich habe letztlich entscheiden, erstellen Sie einen benutzerdefinierten Titel und animieren Sie mithilfe der page-view-controller-hidden-scrollView - delegate-Methode. Es funktioniert, schön.

InformationsquelleAutor Jordan H | 2014-07-03

Schreibe einen Kommentar