我有一个tableview。我重装了一节。我的sectionheader有一行需要绘制。 此行的位置及其绘制方式基于contentview的框架
tableview.reloadData()
是正确绘制的话。 Tableview标题的框架为非零notesTable.reloadSections([1], with: .automatic)
,则 无法正确绘制。 Tableview标题的框架为零!
(我需要使用reloadSections
,因为我想为它设置动画。reloadData()
不会给出任何动画。所以viewForHeaderInSection
的一个非常淡化的例子是:
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
// some code
sectionView.setupUI()
return sectionView
}
标题类:
class SectionHeaderclass: UITableViewHeaderFooterView{
func setupUI(){
let triangleViewArea = ViewWithTriangleLine(triangleCenter:Double(contentView.frame.width - 30))
}
}
如果我为部分重新加载动画, contentView.frame.width
会返回0
。为什么?!我该如何解决这个问题?
答案 0 :(得分:0)
如果你想更新标题,并且它有一些图纸视图,你最好在headerView上调用setNeedsDisplay()
而不是重新加载tableview。
请注意reloadSections(...)
更新标题视图中的单元格。