如何检测 UITableView 中有多少个单元格可见

Posted

技术标签:

【中文标题】如何检测 UITableView 中有多少个单元格可见【英文标题】:How to detect how many cells are visible in a UITableView 【发布时间】:2012-02-01 10:15:02 【问题描述】:

我的表格视图覆盖了部分视图。如果我有 20 个对象,我将在表格视图中显示所有对象。但我想知道加载了多少用户可见的单元格。 (即我可以看到前 5 个单元格的数据:当我向下滚动时,将加载剩余的单元格。这里我想知道不滚动加载了多少个单元格。)

这可能吗?

【问题讨论】:

你搜索过吗?你的研究结果是什么?你试过了吗? 【参考方案1】:

你可以使用[tableView visibleCells] count],如果我正确理解你想要什么,它会返回可见的表格单元格的数量。

【讨论】:

你能告诉我tableview是如何完成加载数据的吗,这里我没有继承UITableView 你可以检查这个问题,***.com/questions/1483581/…,可能会对你有所帮助。 是的,我已经经历过了,但是他们通过子类化 UITableView 解决了这个问题,但这对我来说是不可能的 抱歉,我不知道更好的解决方案。您想知道滚动条何时停止或什么?试试 scrollViewDidEndDecelerating: 你会知道什么时候加载完成。为什么不能继承 UITableView? 我想知道 tableview 何时完成加载可见单元格的加载【参考方案2】:

下面的代码将为您提供当前可见单元格的索引路径数组

NSArray *visiblePaths = [self.tableView indexPathsForVisibleRows];

获取索引路径后,您可以轻松访问特定索引路径的单元格

【讨论】:

【参考方案3】:

通常是:(tableView's height / cell row height ) + 1

【讨论】:

是的,通常就是这样。但是它可以是ceil(tableView's height / cell row height ) + 1。无论如何,这些公式只是为了找到可见的最小或最大数量。要找到 当前 个可见单元格,必须知道滚动偏移量:)【参考方案4】:

你能把表格可见部分的大小,然后是一个单元格的大小,然后将它们分开,以知道它们中有多少适合屏幕?

【讨论】:

以上是关于如何检测 UITableView 中有多少个单元格可见的主要内容,如果未能解决你的问题,请参考以下文章

对于这种边缘情况,如何检测何时从 iOS 的 uitableview 中删除单元格?

如何检测 UITableView 滚动?

如何从自定义 UITableview 中检索有关选择单元格的数据

问:如何更改 UITableView 中的单元格大小,以显示所有标签?

自行调整特定 UITableView 单元的大小

如何编写 UI 测试来测试单击 UITableView 中的第一个单元格时图像是不是存在?