我有一个带有一个部分的tableViewController。我已经在故事板中的tableView中直接添加了一个UIView,并为我的tableViewController设置了该视图的插件(headerView),它的内容是分段控件和searchBar。
在tableView委托方法中,我的标题有以下内容:
override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
return headerView
}
override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 88
}
除了我的tableView的最后一行没有分隔符外,一切正常。这是预期的,我的解决方法一直是viewDidLoad中的以下内容:
self.tableView.tableFooterView = UIView(frame: CGRect.zero)
self.tableView.tableFooterView?.isHidden = true
由于某种原因,这两行代码导致我的headerView完全从表中消失。
我可以创建一个tableViewCell并将其用作我的tableView标头,但是searchBar和分段控件需要很多委托,这会导致其他问题。主要是每次重新加载tableView时,searchBar都想要resignFirstResponder。还有一些解决方法,但这一切都开始变得有点混乱。
只是想知道为什么我的headerView正在消失以及我能做些什么。
答案 0 :(得分:1)
这是因为您将新的UIView对象分配给表头视图
如果要切换表格标题,则必须按照以下步骤进行操作
1)保留您要在表格标题中设置的视图的引用
UIView footerView =您的故事板referance
2)当你想要隐藏时,只需将nil分配给表格页脚
self.tableView.tableFooterView = nil
3)现在,当你想要显示然后再分配你的refence视图
self.tableView.tableFooterView = footerView
答案 1 :(得分:1)