Show search bar in der Navigationsleiste ohne zu scrollen auf iOS-11
Ich bin Befestigung ein UISearchController der navigationItem.searchController
Eigenschaft eines UITableViewController auf iOS-11. Dies funktioniert gut: ich kann das schöne iOS-11-Stil Suchleiste.
Jedoch, würde ich mag, um die Suchleiste sichtbar zu starten. Standardmäßig hat der Benutzer einen Bildlauf nach oben in der Tabelle sehen Sie die Suchleiste. Weiß jemand wie das möglich ist?
Links: die Standardeinstellung nach dem Start. Rechts: Suchleiste sichtbar gemacht (durch scrollen nach oben). Ich würde gerne die Suchleiste sichtbar nach dem Start, wie in der rechten Abbildung.
Habe ich schon gefunden, dass die Suchleiste können sichtbar gemacht werden durch das setzen der Eigenschaft hidesSearchBarWhenScrolling
meiner Navigations-Element auf false. Dies verursacht jedoch die Suchleiste immer sichtbar sein, auch beim scrollen nach unten, das ist nicht das, was ich will.
- wo du den code Hinzugefügt
hidesSearchBarWhenScrolling
- was ist mit der Einstellung als s
firstResponder
? - Die ausgewählte Antwort unten funktioniert bei mir am laden, aber ich würde auch gerne wieder die Anzeige der Such-Controller, wenn programmatisch scrollen nach oben mit
scrollView.setContentOffset(_:animated)
. Jemand einen Vorschlag?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den folgenden macht Sie die Bildlaufleiste sichtbar auf den ersten, dann kann es ausblenden, wenn scrolling:
Mit
isActive
nicht machen, was ich wollte, es macht die scroll-Leiste aktiv (mit Schaltfläche "Abbrechen", usw.), wenn alles was ich will ist für Sie, um sichtbar zu werden.viewDidLoad
stattviewWillAppear
searchController.searchBar.isHidden = false
im viewDidLoad nicht? Letztere scheint viel logischer für michKönnen Sie die Eigenschaft
isActive
zutrue
nach dem hinzufügen der searchController dennavigationItem
.Nur so:
isActive
ist ein schreibgeschützter boolean-Wert. Möchten SiesearchController.active = true
statt.Den folgenden stellen Suchleiste zu werden first responder: