有没有办法在UITableView中强制刷新一个标题?

Chr*_*isP 10 iphone objective-c uitableview

我有一个UITableView,我想强制刷新一个特定的节标题行,而不是数据行.例如,刷新第3部分的标题.我知道如何重新加载整个部分(标题加数据),但是只能更新部分标题?

编辑:当表格的一个部分的数据发生变化时,我想更新不同部分标题中的信息.因此,我需要获取节标题的引用,然后刷新它.

Pen*_*One 11

如果标题是一个自定义的UIView,那么你可以调用setNeedsDisplayUIView,而不是上UITableView.

  • @ChrisP&@ NSInterMax:*如何获取对标题头自定义UIView的引用来调用setNeedsDisplay?*`UIView*sectionHeader = [self tableView:self.tableView viewForHeaderInSection:[indexPath section]];` (5认同)
  • 1:维护您在数组中创建的标题视图OR 2:遍历UITableView子视图,直到找到包含所需view.tag的标题. (2认同)

Raf*_*sun 8

好吧,在我的情况下,在一些异步任务后,我需要更新我的自定义节标题视图.

我用它来更新它的高度: 这个Swift 3+代码

//to reload your cell data
self.tableView.reloadData()
DispatchQueue.main.async {
// this is needed to update a specific tableview's headerview layout on main queue otherwise it's won't update perfectly cause reloaddata() is called
  self.tableView.beginUpdates()
  self.tableView.endUpdates()
}        
Run Code Online (Sandbox Code Playgroud)