Mit iOS 11 hat Apple die UISearchBar neu gestaltet, indem die Ecken runder und die Höhe größer gemacht wurden. Das Hinzufügen einer UISearchBar zur Navigationsleiste ist ziemlich einfach, indem Sie sie einfach als Titelansicht des verwendeten Navigationsobjekts festlegen navigationItem.titleView = searchBar
.
In iOS 11 scheint es jedoch nicht mehr wie erwartet zu funktionieren. Schauen Sie sich die Bildschirme an, auf denen wir das gleiche Setup mit iOS 10 und iOS 11 vergleichen
Sie können deutlich sehen, dass die Suchleiste die Navigationsleiste vergrößert, die Balkentasten jedoch nicht richtig ausgerichtet sind. Auch die Suchleiste nutzt den verfügbaren Platz auf der linken Seite nicht mehr.
Wenn Sie die Suchleiste in eine Wrapper-Ansicht einfügen , um die Abbrechen-Schaltfläche auf dem iPad wie hier beschrieben zu erhalten, wird die Schaltfläche Abbrechen in der UISearchBar nicht angezeigt nicht mehr scheint ebenfalls nicht mehr zu funktionieren, da die Suchleiste dann überhaupt nicht sichtbar ist.
Wenn jemand ähnliche Probleme hat oder bereits weiß, wie dies behoben / verbessert werden kann, wäre ich sehr dankbar.
Dies wurde mit Xcode 9 Beta 4 erstellt. Möglicherweise wird dieses Problem durch zukünftige Versionen behoben.
AKTUALISIEREN:
Da dies nicht behoben wird, haben wir uns für die folgende Lösung entschieden. Wir haben der NavBar ein neues UIBarButtonItem hinzugefügt, das dann einen neuen ViewController enthält, in dem wir nur eine Suchleiste und nichts anderes in die NavBar einfügen, was zu funktionieren scheint. Die Verwendung der ausgewählten Antwort ist möglicherweise die beste Lösung, da Apple mit iOS 11 möchte, dass wir dieses neue Design verwenden, auch wenn es uns nicht das ursprünglich gewünschte Ergebnis liefert. Eine andere Möglichkeit, dies zu lösen, könnte eine benutzerdefinierte Suchleiste sein, dies ist jedoch ein anderes Thema.