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?
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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie wollen, um die Animation zwischen verschiedenen Titel-strings, verwenden Sie die folgende:
Können Sie die Zeitdauer anpassen, und legen Sie eine timing-Funktion zum Anzug, natürlich.
Gibt es auch andere Arten der animation, die arbeiten könnten in verschiedenen Situationen (danke @inorganik):
Und noch eine Anmerkung für die Uneingeweihten, wenn meine Erfahrung ist definitiv, müssen Sie das QuartzCore-framework, das über [Projekt]>[target] - >Build-Phasen>Link-Binärdateien>QuartzCore.Rahmen.
InformationsquelleAutor Ashley Mills
Für die Bequemlichkeit, Ashley Mills-Lösung in Swift:
11/16/2016 Aktualisiert Swift 3 (Dank n13)
Swift 2.x
Ich ziehe meinen Hut Ashley!
Danke für die Erinnerung 🙂
Bemerkt die docs auf der
type
Eigenschaft. "Der name der transition. Aktuelle rechtliche übergang Typen gehören, verblassen, moveIn, push und reveal. Standardmäßig fade", so dertype
Eigenschaft, wenn sa zu fade ist unnötig.IIRC war es nicht immer
fade
wenn verwendet mitUISplitViewControllers
. Das könnte sich geändert haben mit neueren iOS-Versionen. Ich wähle immer defensiver Programmierung, wenn ich genau weiß was ich will und brauche es, explizit anfordern. Aber vielen Dank, dass bewusst eine möglicherweise unnötige Erklärung jedenfalls!InformationsquelleAutor Frederik A. Winkelsdorf
Ist eine Lösung zum erstellen einer benutzerdefinierten Titel und animieren Sie, Ihre position mit der page-view-controller-hidden-scrollView - delegate-Methode. Als Zhang erklärte, die benutzerdefinierte Titel ist einfach
self.navigationItem.titleView = customNavTitleLabel;
InformationsquelleAutor Jordan H
Gefunden, der beste Weg, ist in dieser Kategorie:
InformationsquelleAutor MCMatan
Wenn Sie brauchen, um zu animieren, nur Titel (nicht die ganze nav-Leiste)
Entwickeln custom title control
Link für Beispiel
Zuweisen
Animieren
InformationsquelleAutor Svitlana