如何获取 tableView 部分标题

Posted

技术标签:

【中文标题】如何获取 tableView 部分标题【英文标题】:how to get tableView section header 【发布时间】:2016-01-23 15:52:09 【问题描述】:

这听起来像是一个奇怪的问题,因为在 ios 中处理表格时,显然总是有 viewForHeaderInSection 方法可用。

但是,要使用该函数,需要重新加载该表的数据,在这种情况下,我想避免这种情况。

我的UITableViewSectionHeader 中有一个按钮,我想在我的应用程序中的某个点再次禁用它,而无需重新加载 tableview 数据。 我试图用这段代码做到这一点:

let currentTable = self.playerTables![i] as! UITableView
let header = currentTable.headerViewForSection(0)! as UITableViewHeaderFooterView!
let view = header.contentView as UIView
view.userInteractionEnabled = false

我的应用程序在运行此代码时崩溃,因为在加载 contentView 时header 为零。当我调用currentTable.headerViewForSection(0)! 代码时它会初始化,但在下一行再次为零。

我已经检查了我所指的部分是否正确,检查了苹果文档和谷歌/so,并且无法找到任何关于以我想要的方式访问部分标题的参考。 有办法吗?

【问题讨论】:

假设你没有大量的节标题,在 viewDidLoad 创建它们,然后保存在一个数组中。当系统要求一个时,您可以将其拉出阵列而不是动态创建它。现在它们不会被重复使用,无论视图是否显示,您都可以访问按钮。我一直使用 tableViews 自动售货设置来做到这一点。 [如果这对您有用,我将删除此评论并作为答案。] 【参考方案1】:

如果headerview 不在屏幕上(不可见),您将无法访问它。

也许故事板可以帮助你。将UIView 拖入tableview。这将是您的headerview,您可以将控件直接连接到UIViewController 并访问它们。

此外,此示例不需要使用 viewForHeaderInSection

【讨论】:

以上是关于如何获取 tableView 部分标题的主要内容,如果未能解决你的问题,请参考以下文章

如何根据uitableview中的部分获取索引路径?

iOS XMPP如何在tableview的单个部分中显示所有用户

如何在 tableView:(UITableView *)tableView heightForRowAtIndexPath 函数中获取单元格对象?

当每个部分的行数不同时,如何获取 numberOfRows 的计数?

从自定义 Tableview 部分标题中获取 indexPath

从 UITableViewCell 快速获取 TableView 部分标题