Панель поиска в контроллере TableView слишком короткая

#ios #swift

#iOS #swift

Вопрос:

У меня есть контроллер tableview, и я добавил панель поиска программно. Она появляется, когда я прокручиваю вверх в tableview, и я вижу текст предварительного просмотра, если продолжаю нажимать на таблицу. Однако, когда я отпускаю — таблица прокручивается на несколько пикселей вверх, и в итоге я получаю панель поиска, которая слишком коротка для текста предварительного просмотра и выглядит так, как показано ниже. В нем отсутствует текст-заполнитель, и он короче, чем должен быть. Помогите!

рисунок 1

Если я нажимаю на поле, оно расширяется и сдвигается до этого:

рисунок 2

И если я затем нажму «Отмена», то это будет выглядеть так, как я ожидаю, на первом шаге. Но единственный способ перевести ее в это «правильное» состояние — это нажать на сжатое поле без текста-заполнителя, затем оно расширяется, затем я нажимаю «Отмена» и получаю то, что хочу, пока не прокручиваю снова….

изображение 3

Но как только я прокручиваю вообще, он возвращается к этому сжатому состоянию на первом изображении.

Я добавляю ее программно в viewDidLoad () с помощью:

 let search = UISearchController(searchResultsController: nil)
search.searchResultsUpdater = self
search.obscuresBackgroundDuringPresentation = false
search.searchBar.placeholder = "Type something here to search"
navigationItem.searchController = search
  

Предложения??

Ответ №1:

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

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

Теперь все ведет себя так, как должно. Оставляю здесь на случай, если пригодится другим.