2015-08-15 2 views
1

Я создаю UITableView, который отображает запись прошлых событий. Все это выглядело отлично, пока я не добавил панель поиска наверху. Все это выглядит так, как я хочу, когда он прокручивается к вершине:Пустое место внизу UITableView после добавления UISearchBar

enter image description here

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

enter image description here

Интересно, что когда я активировать строку поиска на всех (т.е. клик в нем, а затем нажмите «Отмена»), пробел исчезнет, ​​пока это изображение не появится снова.

Я пробовал всевозможные настройки для tableView, а также используя reloadData() на разных этапах процесса компоновки представлений безрезультатно. Я знаю, что количество строк верное. Единственное, что я нашел, чтобы убрать пустое пространство, это отключить панель поиска. Но я хочу панель поиска!

Вот код для панели поиска:

self.resultSearchController = ({ 
     let controller = UISearchController(searchResultsController: nil) 
     controller.searchResultsUpdater = self 
     controller.dimsBackgroundDuringPresentation = false 
     controller.searchBar.sizeToFit() 
     controller.searchBar.placeholder = "Search by keyword, name, etc." 
     controller.searchBar.barTintColor = UIColor(red: 224/256, green: 244/256, blue: 255/256, alpha: 1) 
     controller.searchBar.delegate = self 

     self.pastServicesTable.tableHeaderView = controller.searchBar 

     return controller 
    })() 
+0

Привет, почему вы не пытаетесь дать цвет таблице, ячейке таблицы, чтобы узнать, что это за белый цвет точно – Misha

+0

У меня такая же проблема, знаете ли вы, как ее исправить? – Abhishek

ответ

1

То же самое произошло со мной. Указание высоты таблицы tableview в viewDidLoad (т.е. self.tableView.rowHeight = 350) исправило ее.

+0

Спасибо большое, что сработало отлично! У вас есть идеи, почему это работает? Мои rowHeights различаются в зависимости от ячейки, и я устанавливаю tableView.rowHeight = UITableViewAutomaticDimension в ViewWillAppear. Также с вашим решением кажется, что если я установлю tableView.rowHeight ниже около 100, то внизу все еще остается место (больше места, чем ближе rowHeight к 0), но я не уверен, почему ... –

0

Похоже, вы наблюдаете UIKeyboardWillShowNotification & UIKeyboardWillHideNotification и изменения contentInset в Tableview (добавление высоты размер клавиатуры к contentInsets) и не устанавливая contentInsets в UIEdgeInsetsZero когда клавиатура скрывается.

+1

Привет, нет. Я не наблюдаю ни уведомления, ни изменения содержимого (по крайней мере, не в коде или инспекторе атрибутов из того, что я могу сказать). Единственный раз, когда клавиатура появляется, - это использовать панель поиска. Также высота белого пространства внизу кажется неустойчивой с примерно четверти до трех четвертей высоты экрана. –

Смежные вопросы