Панель поиска UISearchController скрывает первую ячейку в табличном представлении

У меня есть таблица с панелью поиска. Панель поиска предоставляется UISearchController. Когда я добавляю панель поиска в представление заголовка таблицы, первая строка таблицы закрывается панелью поиска.

Как запретить панели поиска скрывать первую строку?

У меня есть этот фрагмент в viewDidLoad:

self.searchController = UISearchController(searchResultsController: nil)
self.searchController.searchResultsUpdater = self
self.searchController.searchBar.delegate = self     
self.tableView.tableHeaderView = self.searchController.searchBar
self.searchController.dimsBackgroundDuringPresentation = false
self.searchController.searchBar.sizeToFit()

person user965972    schedule 22.05.2015    source источник
comment
если активировать, а потом отменить строку поиска, она после корректно работает?   -  person Zsolt    schedule 20.06.2015


Ответы (2)


Кажется, вам нужно явно установить массив заголовков кнопок области, если у вас нет заголовков кнопок области.

self.searchController.searchBar.scopeButtonTitles = [NSArray array];
person Zsolt    schedule 22.06.2015
comment
В качестве дополнительного комментария вы должны установить этот массив до его установки в качестве заголовка, иначе будут учтены любые вычисления (такие как sizeToFit). - person olivaresF; 18.08.2015
comment
Это было необходимо для iOS 8, я не заметил проблемы с макетом в iOS 9. Однако это решает проблему. - person Jakub Truhlář; 27.07.2016

Обнаружил, что эта проблема связана с ограничениями макета. Решено путем удаления всех моих ограничений в представлении, содержащем мой контроллер поиска, и добавления обратно по отдельности, пока я не нашел оскорбительное ограничение. Использование Xcode 7.1

person Rich16    schedule 04.07.2016
comment
С каким именно ограничением у вас возникли проблемы? - person Jeffrey Kern; 12.05.2018