【问题标题】:Dynamically update uicollectionview cell height动态更新 uicollectionview 单元格高度
【发布时间】:2020-12-27 22:25:03
【问题描述】:

我正在处理一个相当复杂的案例

我有一个嵌套的 UICollectionView 外层 UICollectionView A 用于垂直滚动, 它是第一个单元格,是 UICollectionView B,用于水平滚动。

已经完美实现了,但是现在多了一个需求 将第一个单元格滚动到第二页时,第一个单元格的底部又出现了一个横幅。 因此,我需要在滚动时更新单元格的高度。

如果我在滚动时尝试调用无效布局,效率会非常低。还有其他方法支持吗?

【问题讨论】:

  • 如今,这件事是通过组合布局中的正交滚动来处理的。目标iOS是什么?另外,也许发布一张图片来说明和一些代码来展示你的实现。

标签: ios objective-c swift uicollectionview


【解决方案1】:

解决了。

首先从服务器收到数据后,计算每个单元格的高度并调用[collectionview reload]。

然后布局collectionview后,根据indexpath缓存每个cell的大小。

为实现“实时”调整大小,手势将通过委托调用调整大小函数,并直接修改大小缓存并调用[collectionview.layout invalidlayout]。

看起来很流畅。

【讨论】: