Swift - 重新加载UITableView标题

时间:2017-05-09 07:03:02

标签: swift uitableview swift3

我尝试重新加载UITableView部分标题而不重新加载整个部分或重新加载整个表。提前谢谢。

注意: - 我按照已回答问题的答案。但我仍然无法弄清楚这一点。

4 个答案:

答案 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()