我想调整UICollectionViewCell的大小以适应合理调整大小并保持尺寸/宽高比的图像。如果我只是将单元格的大小设置为图像大小,那么它可能太大了。此外,如果我在不同尺寸的设备上运行,则间距不一致。我必须以编程方式实现collectionView来克服这个问题吗?
我看到许多应用程序执行此操作,因此它是一个非常常见的问题,可能已经作为框架解决了。
示例:
答案 0 :(得分:0)
UICollectionView实际上是任意布局。碰巧的是,默认值是UICollectionViewFlowLayout,它是一个网格,但您可以通过实现自己的UICollectionViewLayout协议实例将其更改为任何内容。在这种情况下,你引用它很容易。单元格的宽度是集合视图(宽度减去填充)除以2。高度是宽高比乘以宽度+间距+标签高度。索引可被2整除的所有单元格都在右列中,其余单元格在左列中。为layoutAttributesForItem(at:)计算这些值应该很容易。不幸的是,collectionViewContentSize计算起来有点困难。假设您的集合视图足够小,我认为最好只是预先计算所有的hieghts并使用这些函数的缓存值。
答案 1 :(得分:0)
github上有很多开源你可以参考。