我有一个UITableViewController,它的表视图具有静态单元格,在故事板中定义。动态更改静态单元格上的节标题文本
我的表格视图有两个部分。第一个有两个单元,第二个有三个单元。第二部分的标题中也有文字。
我想要做的是当用户点击第一部分中的第一个或第二个单元格时,更新第二个部分的标题文本。动态地使用动态内容(例如,在点击单元格的那一刻显示日期和时间)。
我尝试了很多东西,但viewForHeaderSection
只被调用一次。
我注册了
tableView.registerClass(TableSectionHeader.self, forHeaderFooterViewReuseIdentifier: "secondSectionCell")
页眉节电池在哪里TableSectionHeader
很简单:
class TableSectionHeader: UITableViewHeaderFooterView { }
我就能够动态地设置节头,就像这样:
override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
if section == 1 {
if let cell = tableView.dequeueReusableHeaderFooterViewWithIdentifier("secondSectionCell") {
cell.textLabel?.text = "hello world"
return cell
}
}
return nil
}
我也实施了以下重写,因为有些人建议t当执行viewForHeaderInSection
时,还需要:
override func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 40.0
}
即使如此。 viewForHeaderInSection
只被调用一次。
我能够以某种方式动态刷新部分标题文本,如上所述?
你不能这样做它。没有这方面的官方文件。你需要做自定义方法,如:http://stackoverflow.com/questions/23501952/refresh-only-the-custom-header-views-in-a-uitableview,但是,我强烈建议你离开节标题单独使用细胞,而不是每个部分的第一个细胞。除非你想做一些你需要的粘性标题或其他东西。 – 2017-02-09 03:18:18
@Sneak我喜欢你的建议。可能是最简单的方法。唯一的事情是摆弄桌面视图来处理分隔单元格的线条,以及它们如何从tableview的左边缘插入。 – dbarros
tableView.reloadSections将重新加载页眉(和页脚)以及该部分的内容 – Dale