如何获取 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 部分标题的主要内容,如果未能解决你的问题,请参考以下文章
iOS XMPP如何在tableview的单个部分中显示所有用户
如何在 tableView:(UITableView *)tableView heightForRowAtIndexPath 函数中获取单元格对象?
当每个部分的行数不同时,如何获取 numberOfRows 的计数?