Animieren Sie die Höhenänderung der UINavigationBar in UIKit
Posted: 16 Jan 2025, 08:55
Ich versuche, ein Erlebnis nachzubilden, das ich in der Medium-App gesehen habe.
Wenn der Benutzer scrollt, wird die UINavigationBar sanft ausgeblendet (es scheint, als ob nur der Bereich, in dem Die Schaltflächen) sind ausgeblendet.
Das können Sie hier sehen
Ich habe damit begonnen, mir Scroll-Ereignisse anzuhören, und dann, zum richtigen Zeitpunkt, füge ich hinzu dieser Code:
Obwohl dies funktioniert, ist das Erlebnis ziemlich unruhig und kommt nicht annähernd an das Erlebnis heran, das wir in Medium sehen.
Ich habe darüber nachgedacht, so etwas wie „inside“ zu machen ein UIView-Animationsblock
Damit ändert sich aber überhaupt nichts
Was wäre der beste Weg, die Navigationsleiste so glatt und schön auszublenden wie im Video?
Ich glaube nicht, dass die Lösung darin besteht, die Höhe der Navigationsleiste mit dem Scrollview-Offset zu ändern, wie ich es bei einigen Lösungen gesehen habe. Wenn Sie das Video sehen, wird die Animation an einem bestimmten Punkt ausgelöst, aber es scheint, als ob die Höhe der Navigations- und Tab-Leisten animiert wäre.
Wenn der Benutzer scrollt, wird die UINavigationBar sanft ausgeblendet (es scheint, als ob nur der Bereich, in dem Die Schaltflächen) sind ausgeblendet.
Das können Sie hier sehen
Ich habe damit begonnen, mir Scroll-Ereignisse anzuhören, und dann, zum richtigen Zeitpunkt, füge ich hinzu dieser Code:
Code: Select all
navigationController.setNavigationBarHidden(shouldHide, animated: true)
Ich habe darüber nachgedacht, so etwas wie „inside“ zu machen ein UIView-Animationsblock
Code: Select all
navigationController.navigationBar.frame.size.height = 0 // or some other value
Was wäre der beste Weg, die Navigationsleiste so glatt und schön auszublenden wie im Video?
Ich glaube nicht, dass die Lösung darin besteht, die Höhe der Navigationsleiste mit dem Scrollview-Offset zu ändern, wie ich es bei einigen Lösungen gesehen habe. Wenn Sie das Video sehen, wird die Animation an einem bestimmten Punkt ausgelöst, aber es scheint, als ob die Höhe der Navigations- und Tab-Leisten animiert wäre.