如何使单元格适合集合视图

How to make cells fit Collection View

我按单元格大小自定义集合视图单元格。

如果我有 1 个或 2 个单元格,它可以很好地工作,但是当我有 3 个单元格时,它就不能正常工作了。

这是我的代码,以防我有 3 个单元格:

case 3:
let lastPhoto = info.albumOtherPhoto.photos.first
let lastPhotoWidth = lastPhoto?.width
let lastPhotoHeight = lastPhoto?.height
var sizeForFistPhoto : CGSize!
var sizeForOtherPhotos: CGSize!
if lastPhotoWidth > lastPhotoHeight {
    sizeForFistPhoto = CGSizeMake(screenWidth, screenWidth * 0.5)
    sizeForOtherPhotos = CGSizeMake(screenWidth * 0.5, screenWidth * 0.5)
} else {
    sizeForFistPhoto = CGSizeMake(screenWidth * 0.5, screenWidth)
    sizeForOtherPhotos = CGSizeMake(screenWidth * 0.5, screenWidth * 0.5)
}
self.sizes.append(sizeForFistPhoto)
self.sizes.append(sizeForOtherPhotos)
self.sizes.append(sizeForOtherPhotos)

和 CollectionViewDelegateFlowLayout:

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
    return self.sizes[indexPath.row]
}

我的代码的结果是:

但我希望它像这样显示:

是否可以像我一样在代码中实现这一点(因为我可以在界面构建器中实现这一点)?

我通过将界面生成器中的 集合视图流布局 vertical 更改为 horizontal

来修复它