我尝试重新加载UITableView部分标题而不重新加载整个部分或重新加载整个表。提前谢谢。
注意: - 我按照已回答问题的答案。但我仍然无法弄清楚这一点。
答案 0 :(得分:1)
使用此方法重新加载部分。添加要重新加载的部分的索引集。
tableView.reloadSections(IndexSet(0..<1), with: .automatic)
答案 1 :(得分:1)
没有标准方法可以执行此操作,您可以使用tableView:viewForHeaderInSection:
函数从UITableView获取节标题并进行更新。
答案 2 :(得分:0)
附加到user3608500答案
仅重新加载标题视图
我认为您的标题视图类正在扩展UITableViewHeaderFooterView类。在扩展名中添加功能
extension UITableViewHeaderFooterView{
func reloadHeaderCell(){
preconditionFailure("This method must be overridden")
}
}
现在在下面的Header类中覆盖此
class HeaderView: UITableViewHeaderFooterView {
override func reloadHeaderCell() {
////// add your logic to reload view
}
}
现在,您只需在下面的行中调用即可刷新视图
self.tableView?.headerView(forSection:0)?.reloadHeaderCell()
重新加载整个“横断面图”
要重新加载包括行(此处为第0和2行)的整个节/节视图,可以像下面这样调用
self.tableView?.reloadSections([0,2], with: .none)
重新加载整个表格视图
要重新加载整个表格视图,您可以像下面这样调用
self.tableView?.reloadData()
重新加载特定行
要重新加载特定的行/行,可以像下面这样调用
self.tableView?.reloadRows(at: [IndexPath(item: 1, section: 2), IndexPath(item: 4, section: 3)], with: .none)
以上代码将重新加载第二部分的第一项和第三部分的第四项。
答案 3 :(得分:0)
我处理应用程序的方式是
override func viewDidLayoutSubviews() {
tableview.tableHeaderView = customHeader
}
然后重新加载数据只需调用方法:
self.view.layoutSubviews()