我正在获取包含来自互联网的文本字符串,图片网址等内容的数据,并将其转换为我的数据模型。
现在,我希望将UICollectionView
的数据呈现在两个相等的列和不同高度的行中。
由于下载的图片可能有不同的尺寸,因此每个UICollectionViewCell
应该有不同的尺寸。但我正在使它们固定宽度,因此高度会动态适应宽度。
我做的是创建了自定义UICollectionView
,自定义UICollectionViewCell
和默认UICollectionViewFlowLayout
,我将指向数据模型数组的指针传递给我的自定义{{1} },并将数据模型中的值分配给UICollectionViewCell
中单元格中的子视图。
问题在于我无法计算每个单元格的layoutSubViews
,因为我的数据模型只有height
,而url
图像只有在下载后才能知道。
现在我所做的只是等到图像下载,然后我得到图像的高度并将其添加到我的数据模型中。但是这应该是错误的,因为当我运行它时,细胞就像这样混乱:
所以我的问题是,一旦我获得图像的高度,或者如果有更好的解决方案,我可以重新布局每个单元格(何时是最佳时间)。
感谢。
答案 0 :(得分:0)
我做了一些研究,我发现定制你自己的UICollectionViewFlowLayout
来呈现具有跨越行边界的动态高度的单元格可能很复杂。
我发现了一个很好的名为CHTCollectionViewWaterfallLayout
的lib,可以帮助我。
Here是作者github的链接。