我在控制器中有UITableView
,我在tableHeaderView
viewDidLoad()
属性
let headerView = tableView.dequeueReusableCellWithIdentifier("HeaderView") as! HeaderView
tableView.tableHeaderView = headerView
一切正常,直到我致电tableView.beginUpdates()
/ tableView.endUpdates()
或tableView.reloadData()
。标题空间仍然存在,但内容空白。
我做错了什么?请建议。
答案 0 :(得分:1)
== 2016年10月12日编辑==
您不应该将标题视图出列。而是拥有一个view属性并将该视图指定为tableview的headerview:
class SomeViewController: UIViewController {
// MARK: - Outlets
@IBOutlet var tableView: UITableView!
// MARK: - Properties
var headerView: UIView!
// MARK: - Lifecycle Methods
override func viewDidLoad() {
super.viewDidLoad()
headerView = HeaderView()
tableView.headerView = headerView
}
}
==原始答案 - 没有解决问题==
您不应将headerview放在viewDidLoad上。而是在委托中创建并返回标题(下面的代码假定您有一个部分)。
重要提示:您需要致电dequeueReusableHeaderFooterViewWithIdentifier
NOT dequeueReusableCellWithIdentifier
func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let headerView = tableView.dequeueReusableHeaderFooterViewWithIdentifier("HeaderView") as! HeaderView
return headerView
}