Searchbar seid iOS13 zu breit und nicht da wo sie hingehört...

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Searchbar seid iOS13 zu breit und nicht da wo sie hingehört...

    Hallo,

    ich habe seid iOS13 mit meiner App ein komisches Problem. Meine Suche wird nicht mehr so dargestellt, wie sie mal unter iOS12 und den Vorgängern war. Nach dem ersten Start ist erstmal alles in Ordnung:

    Bildschirmfoto 2020-02-28 um 09.09.11.png

    Wenn ich dann in das Suchfeld tippe passiert das:
    Bildschirmfoto 2020-02-28 um 09.10.48.png
    Eigentlich sollte die Suche nun nach oben rutschen, wo vorher die Überschrift stand. Nun ist der oberste Eintrag hinter der Suche verschwunden.
    Wenn man dann die Tableview hoch schiebt, so das das Suchfeld verschwindet, und dann wieder runter zieht, erscheint die Suche aber sie ist viel zu hoch:
    Bildschirmfoto 2020-02-28 um 09.11.05.png

    Ich finde irgendwie nichts im Internet dazu, wie ich meine Suche wieder "schön" bekomme. Habt ihr vielleicht eine Idee?

    Das hier ist die Funktion die im ViewDidLoad des Tableviews aufgerufen wird um die Suche hinzuzufügen:

    Quellcode

    1. func addSearchBar() {
    2. resultSearchController = UISearchController(searchResultsController: nil)
    3. resultSearchController.searchResultsUpdater = self
    4. resultSearchController.obscuresBackgroundDuringPresentation = false
    5. resultSearchController.searchBar.sizeToFit()
    6. resultSearchController.searchBar.placeholder = NSLocalizedString("searchbarPlaceholder recipe",value: "Search for your recipe", comment:"Placeholdertext for the searchbar")
    7. let unbrewed = NSLocalizedString("segmented Control in Search for unbrewed recipes", value: "Unbrewed", comment: "segmented Control in Search for unbrewed recipes")
    8. let brewed = NSLocalizedString("segmented Control in Search for brewed recipes", value: "Brewed", comment: "segmented Control in Search for brewed recipes")
    9. let watchlist = NSLocalizedString("segmented Control in Search for recipes on watchlist", value: "Watchlist", comment: "segmented Control in Search for recipes on watchlist")
    10. let all = NSLocalizedString("segmented Control in Search for all recipes", value: "All", comment: "segmented Control in Search for all recipes")
    11. resultSearchController.searchBar.scopeButtonTitles = [all,unbrewed,brewed,watchlist]
    12. resultSearchController.searchBar.delegate = self
    13. tableView.tableHeaderView = resultSearchController.searchBar
    14. }
    Alles anzeigen
  • Liegt vielleicht daran, dass man seit iOS 11 den UISearchController ins Navigation Item packen soll, also

    C-Quellcode

    1. navigationItem.searchController = resultSearchController
    und nicht mehr als Header View in den Table View. Ich tippe mal, dass Apple die alte Version nicht mehr testet und diese somit nicht mehr korrekt funktioniert.

    Wenn die App auch vor iOS 11 funktionieren soll, dann verwenden einfach diesen Code hier (aus einem alten Sample Code "Displaying Searchable Content by Using a Search Controller" von Apple)

    C-Quellcode

    1. if #available(iOS 11.0, *) {
    2. // For iOS 11 and later, place the search bar in the navigation bar.
    3. navigationItem.searchController = searchController
    4. // Make the search bar always visible.
    5. navigationItem.hidesSearchBarWhenScrolling = false
    6. } else {
    7. // For iOS 10 and earlier, place the search controller's search bar in the table view's header.
    8. tableView.tableHeaderView = searchController.searchBar
    9. }

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von MCDan ()