调整UICollectionViewCell的大小以适合图像

时间:2017-11-27 00:10:12

标签: ios swift uicollectionview resize uicollectionviewcell

我想调整UICollectionViewCell的大小以适应合理调整大小并保持尺寸/宽高比的图像。如果我只是将单元格的大小设置为图像大小,那么它可能太大了。此外,如果我在不同尺寸的设备上运行,则间距不一致。我必须以编程方式实现collectionView来克服这个问题吗?

我看到许多应用程序执行此操作,因此它是一个非常常见的问题,可能已经作为框架解决了。

示例:

enter image description here

2 个答案:

答案 0 :(得分:0)

UICollectionView实际上是任意布局。碰巧的是,默认值是UICollectionViewFlowLayout,它是一个网格,但您可以通过实现自己的UICollectionViewLayout协议实例将其更改为任何内容。在这种情况下,你引用它很容易。单元格的宽度是集合视图(宽度减去填充)除以2。高度是宽高比乘以宽度+间距+标签高度。索引可被2整除的所有单元格都在右列中,其余单元格在左列中。为layoutAttributesForItem(at:)计算这些值应该很容易。不幸的是,collectionViewContentSize计算起来有点困难。假设您的集合视图足够小,我认为最好只是预先计算所有的hieghts并使用这些函数的缓存值。

答案 1 :(得分:0)

github上有很多开源你可以参考。

https://github.com/zhangsuya/SYStickHeaderWaterFall