4

我有一个带有 UICollectionViewFlowLayout 的 UICollectionView。在使用大数据(5,000 多个单元格)进行测试时,我注意到加载时存在延迟。我发现在加载sizeForItemAtIndexPath时每个单元格都需要调用。由于我正在执行类似应用程序的消息传递并且每个单元格的高度不同,这会导致发生高度估计。我没有滚动到底部或任何东西,只是加载视图。

我制作了一个小应用程序来演示我在说什么(查看控制台以查看它正在调用sizeForItemAtIndexPath所有单元格)https://github.com/ftheo/CollectionViewLoadingBug

任何帮助,将不胜感激。谢谢

4

2 回答 2

3

也许没有办法阻止调用 sizeForItemAtIndexPath 方法......

这是计算滚动内容视图大小的正常设计。

于 2015-07-09T13:21:59.527 回答
1

集合视图需要知道其内容的大小,因此它调用-sizeForItemAtIndexPath:. 没有办法解决这个问题。

考虑使用 aUITableView代替。它提供了一种方法 -tableView:estimatedHeightForRowAtIndexPath:,您可以粗略猜测屏幕外的单元格。

于 2015-07-09T13:30:40.863 回答