我在UIView
内有一个UITableView
,另一个UIView
。在UITableView
内,我有一个包含UISearchController
的标头,搜索控制器包含UISearchBar
。问题是,当我开始关注搜索栏并编辑textField时(所以当searchController.searchBar.isFirstResponder()
)时,范围按钮会出现,覆盖并隐藏表视图第一行的一部分。
这就是为什么我试图使headerView高度动态化,以便每当搜索栏是第一个响应者时我都可以更改它。我尝试了以下但是它没有工作:
func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
if searchController.searchBar.isFirstResponder() {
return 40.0
}
else{
return 20.0
}
}
关于如何实现这一目标的任何想法? 提前谢谢。
编辑:我在定义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
答案 0 :(得分:1)
尝试侦听UISearchController搜索栏委托,如果它成为第一响应者 - 调用your_tableView.reloadData()函数。