我有一个UICollectionView,我遇到了在单元格之间获取填充的问题。理论上,我应该能够将屏幕划分为4,并且我可以获得具有4个图像的单元格,这些图像完全占据屏幕宽度。但是,它选择不这样做。相反,它会创建3个带有巨大填充的图像,如下所示:
_cellSize = CGSizeMake(UIScreen.mainScreen().bounds.width/4,UIScreen.mainScreen().bounds.width/4)
所以我稍微减小了单元格大小以创建一些填充,这更接近但我需要大约一半的填充:
_cellSize = CGSizeMake(UIScreen.mainScreen().bounds.width/4.4,UIScreen.mainScreen().bounds.width/4.4)
所以我尝试让单元格更大一些,然后滚动到下一行并再次放入3个带有巨大填充的项目。
_cellSize = CGSizeMake(UIScreen.mainScreen().bounds.width/4.3,UIScreen.mainScreen().bounds.width/4.3)
我是否可以指定单元格之间的填充,而不确定填充是否低于“x”量,而是创建新行?我可以在新行之前设置阈值填充,例如0?
我想让它变瘦:
答案 0 :(得分:4)
您只需要进行正确的计算,包括您想要边缘的空间以及单元格之间的空间。例如,如果你想要3个单元格,5个点到边缘和单元格之间,你应该有这样的东西,
override func viewDidLoad() {
super.viewDidLoad()
var layout = self.collectionView.collectionViewLayout as UICollectionViewFlowLayout
layout.sectionInset = UIEdgeInsetsMake(0, 5, 0, 5);
layout.minimumInteritemSpacing = 5; // this number could be anything <=5. Need it here because the default is 10.
layout.itemSize = CGSizeMake((self.collectionView.frame.size.width - 20)/3, 100) // 20 is 2*5 for the 2 edges plus 2*5 for the spaces between the cells
}