UIViewController在加载时为所有单元格调用sizeForItemAtIndexPath



我有一个带有UICollectionViewFlowLayout的UICollectionView。在使用大数据(5000+个单元格)进行测试时,我注意到加载时存在滞后。我发现在加载时,sizeForItemAtIndexPath被调用用于每个单元格。由于我正在做一个类似消息传递的应用程序,并且每个单元格的高度都不同,因此会发生高度估计。我没有滚动到底部或任何东西,只是加载视图。

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

如有任何帮助,我们将不胜感激。感谢

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

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

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

请考虑改用UITableView。它提供了一种方法-tableView:estimatedHeightForRowAtIndexPath:,您可以对屏幕外单元格进行粗略猜测。

最新更新