wake-up-neo.com

iOS 11 UISearchBar in der Navigationsleiste

Die UISearchBar verhält sich in iOS 11 anders als in iOS 10 und darunter.

  • die Größe hat sich geändert
  • die ausblendende Animation beim Drücken einer anderen kontrollierten Ansicht fehlt

Ich habe die Größe irgendwie mit diesem Code "korrigiert":

if #available(iOS 11.0, *) {
    searchBar.heightAnchor.constraint(equalToConstant: 44).isActive = true
}

Aber ich kann die Animation nicht reparieren. Irgendwelche Ideen, außer die Suchleiste manuell per Push zu animieren?

UIView.animate(withDuration: 0.3, animations: { [weak self] in
    guard let strongSelf = self else { return }
    strongSelf.searchBar.alpha = 0.0
})

Sehen Sie ein Video des kaputten Animationseffekts hier .

9
Darko

Antworten finden Sie in UIPercentDrivenInteractiveTransition . Es wird zur Aktualisierung von UIViews während des UINavigationController-Übergangs in persentage value verwendet. 

Mit anderen Worten, hängt davon ab, wie viel UINavigationController bereits geöffnete Next-View-Controller oder Rückwärtsansicht-Ansichten hat.

Dieser Wert hilft Ihnen, Ihre Suchleiste zu aktualisieren (Alpha, Breite usw.).

2
ObranS

Packen Sie es einfach mit einer UIView ein und die Animation kommt zurück.

3
awuu