如何使用从互联网

时间:2015-08-26 15:54:28

标签: ios uicollectionview uicollectionviewcell uicollectionviewlayout

我正在获取包含来自互联网的文本字符串,图片网址等内容的数据,并将其转换为我的数据模型。

现在,我希望将UICollectionView的数据呈现在两个相等的列和不同高度的行中。

由于下载的图片可能有不同的尺寸,因此每个UICollectionViewCell应该有不同的尺寸。但我正在使它们固定宽度,因此高度会动态适应宽度。

我做的是创建了自定义UICollectionView,自定义UICollectionViewCell和默认UICollectionViewFlowLayout,我将指向数据模型数组的指针传递给我的自定义{{1} },并将数据模型中的值分配给UICollectionViewCell中单元格中的子视图。

问题在于我无法计算每个单元格的layoutSubViews,因为我的数据模型只有height,而url图像只有在下载后才能知道。

现在我所做的只是等到图像下载,然后我得到图像的高度并将其添加到我的数据模型中。但是这应该是错误的,因为当我运行它时,细胞就像这样混乱:

enter image description here

所以我的问题是,一旦我获得图像的高度,或者如果有更好的解决方案,我可以重新布局每个单元格(何时是最佳时间)。

感谢。

1 个答案:

答案 0 :(得分:0)

我做了一些研究,我发现定制你自己的UICollectionViewFlowLayout来呈现具有跨越行边界的动态高度的单元格可能很复杂。

我发现了一个很好的名为CHTCollectionViewWaterfallLayout的lib,可以帮助我。

如果有人有兴趣,

Here是作者github的链接。