如何使单元格适合集合视图
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
来修复它
我按单元格大小自定义集合视图单元格。
如果我有 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