ios - 调整 UICollectionViewCell 大小以适合图像

标签 ios swift uicollectionview resize uicollectionviewcell

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

我看到很多应用程序都这样做,因此这是一个非常常见的问题,可能已经作为框架得到了解决。

示例:

enter image description here

最佳答案

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

关于ios - 调整 UICollectionViewCell 大小以适合图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47502386/

相关文章:

swift - 访问另一个 View Controller 中的数组

ios - 使用阴影设置从 UIView 生成图像

ios - swift 。导航 Controller 。有条件地更改 subview Controller 的顺序

swift - Mutable 和 Modifialbe 它们的含义是什么?

html - 如何使用 Swift 从网站检索文本

ios - 在多个collectionviewcell中添加tableview

ios - 如何快速过滤字典并将结果输出到 CollectionViewController

iphone - 重写 viewDidAppear 并让它加载特定的 URL 不行吗?

ios - 从 iOS 应用程序到 Safari 将身份验证 token 发送到 Safari

ios - 核心数据插入验证 (validateForInsert) 过早触发?