Swift - 重新加载 UITableView 标题
Posted
技术标签:
【中文标题】Swift - 重新加载 UITableView 标题【英文标题】:Swift - Reload UITableView Header 【发布时间】:2017-05-09 07:03:01 【问题描述】:我正在尝试仅重新加载 UITableView 部分标题不重新加载整个部分或重新加载整个表格。提前致谢。
注意:- 我遵循已回答问题的答案。但我还是想不通。
【问题讨论】:
你可以查看这个方法***.com/a/71378148/7301439 【参考方案1】:使用此方法重新加载部分。添加要重新加载的部分的索引集。
tableView.reloadSections(IndexSet(0..<1), with: .automatic)
【讨论】:
我只想重新加载部分的标题。 然后调用 reloadSections(IndexSet(0.. String?在此方法中更改标题。 很遗憾没有使用这种方法更新标题【参考方案2】:没有标准方法可以做到这一点,您可以使用tableView:viewForHeaderInSection:
函数从 UITableView 获取节标题并进行更新。
【讨论】:
【参考方案3】:附加到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)
以上代码将重新加载第 2 节中的第 1 项和第 3 节中的第 4 项。
【讨论】:
【参考方案4】:我的应用程序是如何处理的
override func viewDidLayoutSubviews()
tableview.tableHeaderView = customHeader
然后重新加载数据只需调用方法:
self.view.layoutSubviews()
【讨论】:
以上是关于Swift - 重新加载 UITableView 标题的主要内容,如果未能解决你的问题,请参考以下文章
iCloud 同步后 UITableView 不会重新加载(Swift 2)
在 UITableView (swift2) 中选择单元格时更新/重新加载 ViewController
UITableView 在使用 Swift 中的 Master Detail App 滚动之前不会重新加载
(Swift)如何通过重新加载 UITableView 根据 UITextfield 输入(动画)显示/隐藏单元格?