在我的项目中,我有一个UICollectionView,其中包含相当复杂的单元格(该单元格中很多UI元素)。并且它们的大小应为全角,但动态高度取决于单元格将显示的内容。此外,单元格应该可重新排序。
使用自动尺寸时,我没有弄清楚没有任何ui故障的情况下如何正常工作(请参见UI-Issues while reordering UICollectionView with full-width and dynamic height cells)
但是当我自己计算单元格的大小时(使用用于计算的屏幕外单元格),我已经能够获得正确的UI行为。这样我就可以拥有所需的一切,但只适用于少数几个单元。一旦单元过多,性能就会变得令人无法接受!
因此,我发现UICollectionView会使用func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize
预先询问每个项目的高度,即使我给布局元素提供了estimatedItemSize = UICollectionViewFlowLayout.automaticSize
,即使我禁用了滚动指示器(使UITableView至少不要求预先设置高度)
所以我想知道是否有可能使CollectionView仍然具有与放入其中的项目一样多的性能?
如何正确使用automaticSize
?
在UITableView中,我有一个委托方法来估计单元格的高度,其结果将一直使用到我真正滚动到某一行为止。 UICollectionView没有这种东西吗?
所有我需要的CollectionView都需要进行拖放重新排序(UITableView需要拖动手柄)