我正在调用以下函数来更新tableView。但是,我发现对于表中的每个部分,都会调用heightForHeaderInSection两次。因此,如果我有5个部分,则该函数被调用10次。这是正常的吗?
tableView.beginUpdates()
let sections = NSIndexSet(index:posts.count - 1)
tableView.insertSections(sections, withRowAnimation: .None)
tableView.endUpdates()
答案 0 :(得分:1)
要回答您的问题,请查看UITableViewDelegate
。来自Apple文档:
UITableView对象的委托必须采用 UITableViewDelegate协议。协议的可选方法允许 代表管理选择,配置节标题和 页脚,帮助删除和重新排序单元格,并执行其他操作。
那么在你的情况下调用UITableViewDelegate
的时候?使用tableView
更新insertSections
时,系统会调用代理。因此,在向heightForHeaderInSection
插入新部分后会调用tableView
。
调用heightForHeaderInSection
的次数取决于您更新tableView
的方式。
此外,有可能强调Apple没有明确解释UIKit多久会称您为委托方法。