contentView 框架可能比 CollectionView 框架大。
假设您希望 collectionView 显示 5 个单元格...
在 viewDidLoad 上:
let cvWidth = collectionView.frame.width
let cvHeight = collectionView.frame.height
let cellEdge = cvWidth / 5
let contentSize = cellEdge * CGFloat(numberOfCells)
collectionView.contentSize = CGSize(width: contentSize, height: cvHeight)
不要忘记设置您的 numberOfCells 值
如果单元格之间有一些空间,则应该这样设置 cellEdge:
let cellEdge = cvWidth / 5 + space
编辑——关于 UICollectionViewDelegateFlowLayout:
要设置单元格和部分之间的空间,首先将 UICollectionViewFlowLayoutDelegate 添加到 ViewController:
class ViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout
您可以通过此函数设置间距、行距和插入:
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAtIndex section: Int) -> UIEdgeInsets {
return UIEdgeInsets(top: 20, left: 0, bottom: 10, right: 0)
}
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAtIndex section: Int) -> CGFloat {
return 0
}
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAtIndex section: Int) -> CGFloat {
return 0
}