如何检测 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 中检索有关选择单元格的数据