我想将照片添加到我的收藏夹视图单元格中的一种,类似于Snapchat的操作方式...
只有两个主要要求:
照片的数量会有所不同,因此整个单元格的高度也必须有所不同。
每张照片应保持其纵横比。
我最初的想法是将要显示的图像数组放在单元出队之前,计算每个单元的大小,保持其长宽比,然后使用该数据在单元内部的集合视图中显示图像。但是,我的结果缺乏。
图像似乎尺寸正确,但是UICollectionViewFlowLayout处理的图像布局无法正确放置图像
这里是计算尺寸的方法。
func calculateImageSize(images: [UIImage], bounds: CGRect) -> [CGSize] {
var imageSizes: [CGSize] = []
var imageWidth: Int!
var imageHeight: Int!
var aspectRatio: CGSize!
var convertedRect: CGRect!
for i in 0..<images.count {
imageWidth = images[i].cgImage?.width
imageHeight = images[i].cgImage?.height
aspectRatio = CGSize(width: imageWidth, height: imageHeight)
convertedRect = AVMakeRect(aspectRatio: aspectRatio, insideRect: bounds)
imageSizes.append(CGSize(width: convertedRect.width, height: convertedRect.height))
}
return imageSizes
}
最小行距和项目间距都设置为零。
有什么建议吗?
答案 0 :(得分:0)
我认为这与图像尺寸无关。这是您需要自定义的布局。我进行了快速搜索,发现该库可能有帮助:https://github.com/rubygarage/collection-view-layouts