У меня есть UIView
с внутри UITableView
и еще UIView
. Внутри UITableView
у меня есть заголовок, который содержит UISearchController
, контроллер поиска содержит UISearchBar
. Проблема в том, что когда я начинаю фокусироваться на панели поиска и редактируя textField (поэтому, когда searchController.searchBar.isFirstResponder()
), кнопки области отображаются, закрывая и скрывая часть моей первой строки таблицы.Как установить динамическую высоту для высоты заголовка TableView для HeaderInSection?
Вот почему я пытаюсь сделать динамическую высоту headerView так, чтобы я мог ее менять, всякий раз, когда панель поиска является первым ответчиком. Я попробовал следующее, но это не сработает:
func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
if searchController.searchBar.isFirstResponder() {
return 40.0
}
else{
return 20.0
}
}
любая идея о том, как я мог это достичь? Спасибо заранее.
EDIT: Я также установил следующее при определении моего searchController
searchController.searchResultsUpdater = self
searchController.dimsBackgroundDuringPresentation = false
searchController.searchBar.scopeButtonTitles = ["Groups", "People"]
tableView.tableHeaderView = searchController.searchBar
searchController.searchBar.delegate = self
searchController.searchBar.sizeToFit()
self.definesPresentationContext = false
Спасибо. Это действительно работает, но поскольку кнопки области анимированы, когда они появляются, а высота заголовка tableView - нет, вы можете увидеть серое пространство около секунды, прежде чем оно будет заполнено кнопками области. Любая идея, как это исправить? –
извините, его трудно сказать, если он по-прежнему актуальен для вас, предоставить скринкаст или короткое видео. –