获取 UITableView 中的第一行,其中未知数量的第一部分为空
Posted
技术标签:
【中文标题】获取 UITableView 中的第一行,其中未知数量的第一部分为空【英文标题】:Get first row in UITableView where unknown number of first sections are empty 【发布时间】:2016-09-15 23:09:43 【问题描述】:在这些条件下,我需要 tableview 中第一行的索引路径:
第一行可能不在屏幕上,因此不在对返回可见行数组的方法的调用中。
第一行的节未知,可能大于 0,节的总数是可变的。这是由于前面的部分返回 0 到 [UITableViewDataSource numberOfRowsInSection:]
调用。
我可以循环浏览每个部分以查找行,但想知道 UITableView 是否有更好的方法来做到这一点?
【问题讨论】:
这个很不清楚。你到底在找哪一行?什么if
语句会匹配该行?
tabieview 中的第一行。棘手的部分是第一行可能在也可能不在第 0 节中。它可能在第 20 节或第 54 节中,或者在 tableview 中的节数中的任何数字。
这仍然没有意义。表格视图中的第一行怎么可能不是第 0 行第 0 行? “第一行”的唯一其他可能定义是最上面的可见行,但这似乎也不是您想要的。
如果您将 0 返回到部分中的行数,则该部分的 tableview 中不会出现任何行。如果第 0 部分发生这种情况,则第 0 行第 0 部分的 tableview 中没有行。这就是问题的本质。如果0,0处没有行但表中有行,如何找到第一行?
啊哈。现在你已经描述了这个问题。您需要表格视图中第一部分的行的 indexPath,其中包含 1 行或更多行。
【参考方案1】:
根据 cmets,您似乎想知道表视图第一部分中具有 1 行或更多行的行的索引路径。
您唯一的选择是逐节遍历您的数据源,直到该节中有 1 行或更多行。然后所需的行将具有第 0 行的 indexPath
和您刚刚找到的部分。
没有通过表格视图获取此信息的快捷方式。
虽然有一个可能的快捷方式,但它要求您的表格视图使用“普通”样式(而不是“分组”),并且您的表格视图不能有任何部分的页眉或页脚视图。如果所有这些都是真的,您可以使用UITableView indexPathForRowAtPoint:
获取所需行的indexPath 并传入CGPointMake(5, 5)
。这将给出整个表格视图中最顶行的索引路径。
【讨论】:
以上是关于获取 UITableView 中的第一行,其中未知数量的第一部分为空的主要内容,如果未能解决你的问题,请参考以下文章
Swift UITableView - 在 UITalbleVIew 上自定义第一行
UITableview 选择行按钮应取消选择另一行中的相同位置