具有自动布局单元格的

时间:2018-04-26 02:41:02

标签: ios swift uicollectionview

我有一个 UICollectionView (使用流程布局),单元格使用自动布局。为了实现这一点,我将 estimatedItemSize设置为非零值

要触发 cellForRowAt ,我需要为集合视图设置非零高度。这可以是显式高度约束,也可以是父视图的继承高度。

然而,这似乎导致一种情况,即如果通过自动布局计算的动态单元格高度大于集合视图的高度,则会出现错误;

  

" ...物品高度必须小于物品的高度   UICollectionView ..."

可以理解发生。这个的首选解决方案是什么?这似乎是一个问题22,我必须为 cellForRowAt 设置某个值的高度,但是这个值可能会导致上述错误。

我尝试的所需行为是集合视图高度以匹配单元格的动态高度(这是一个水平滚动的集合视图,其中每个单元格是"全屏")。

更新

为了进一步澄清这里是遵循的步骤;

在视图加载时,将集合视图高度设置为最小值,例如200.此处需要非零值来触发数据加载。

加载集合视图数据,其中cellForRowAt将启动单元格的创建。将使用Autolayout调整单元格的大小。

如果尺寸的单元高度<1。 200,一切都很好。

如果大小的单元高度> 200,按预期记录流布局错误。

要解决此问题,单元格需要在layoutSubviews中通知它的高度。 然后,如果集合视图高度更大,则将其调整为新高度。

净效应是我有一个扩展的集合视图,最小高度(200)并且增长到最大单元格的最大高度。

0 个答案:

没有答案