我对自定义tableView
头有问题,即无法实时更新表节内容。
下面是演示我的问题的示例代码:
//SomeViewController.swift
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
if let infoHeaderView = InfoHeaderView.viewFromNib as? InfoHeaderView {
infoHeaderView.update(with: someContent)
updateMethod = { newContent in
infoHeaderView.update(with: newContent)
}
}
}
...
updateMethod(someContent)
...
//InfoHeaderView.swift
func update(with content: Content) {
someLabel.text = content.textProperty
}
注意:我想在不重新加载表或单个部分的情况下实现这一点。我只想更新自定义表节视图中的单个标签。
我希望在updateMethod调用时更改标签文本,但这不会发生。有什么问题吗?
编辑:
当我将节头滚动到顶部并让它向下时,它工作得很好。
最佳答案
使用要更改标题的节的索引,如下所示:
if let headerView = self.tableView.headerView(forSection: <section number>) as? InfoHeaderView {
headerView.update(with: content)
}
但是,要使此方法工作,头视图的类型应该是
UITableViewHeaderFooterView
的子类