Почему моя панель поиска остается на вершине, только если я ее использую? - PullRequest
0 голосов
/ 17 октября 2019

У меня есть tableView, содержащий список. Я использую панель поиска для фильтрации данных. Когда я касаюсь символа в тексте поиска, я могу отобразить отфильтрованные данные, и панель поиска остается наверху при прокрутке. Но, если я не использую его (панель поиска пуста), при прокрутке панель поиска становится первой строкой списка и исчезает при прокрутке вниз. Вы можете найти часть кода там:

class Liste*****Active: UIViewController, UITableViewDelegate, UITableViewDataSource, UISearchResultsUpdating,
UISearchBarDelegate,RecupListe*****ModelProtocol {

let searchController = UISearchController(searchResultsController: nil)

override func viewDidLoad() {
        super.viewDidLoad()

    searchController.searchResultsUpdater = self

    searchController.dimsBackgroundDuringPresentation = false

    definesPresentationContext = true

    ListeTab*****.tableHeaderView = searchController.searchBar
    self.ListeTab*****.register(UITableViewCell.self, forCellReuseIdentifier: "cell")

}


func updateSearchResults(for searchController: UISearchController) {
    // If we haven't typed anything into the search bar then do not filter the results
    if searchController.searchBar.text! == "" {
        filtered*****s = feedItems
    } else {
        // Filter the results
        filtered*****s = feedItems.filter { ($0 as! *****Model).nom*****!.lowercased().contains(searchController.searchBar.text!.lowercased()) } as! [*****Model] as NSArray
    }

    self.ListeTab*****.reloadData()
}

Ничего не определено в раскадровке.

Я забыл часть кода?

Спасибо

1 Ответ

0 голосов
/ 17 октября 2019

Если ваша панель поиска встроена в панель навигации, вам необходимо изменить это поведение:

navigationItem.hidesSearchBarWhenScrolling = false

Обновление

Вы используетеискатель как заголовок таблицы.

ListeTab*****.tableHeaderView = searchController.searchBar

Так что это в основном проблема - ваша панель поиска является частью содержимого таблицы, поэтому она прокручивается. Чтобы избежать этого, вам нужно вывести панель поиска из tableView.

Возможные решения:

  • Встраивание searchBar в представление заголовка контроллера навигации.

  • Добавление searchBar в качестве отдельного представления поверх табличного представления в иерархии представлений

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...