在单元格之间的UICollectionView中设置/覆盖填充

时间:2015-02-20 01:46:42

标签: ios swift uicollectionview uicollectionviewcell

我有一个UICollectionView,我遇到了在单元格之间获取填充的问题。理论上,我应该能够将屏幕划分为4,并且我可以获得具有4个图像的单元格,这些图像完全占据屏幕宽度。但是,它选择不这样做。相反,它会创建3个带有巨大填充的图像,如下所示:

_cellSize = CGSizeMake(UIScreen.mainScreen().bounds.width/4,UIScreen.mainScreen().bounds.width/4)

enter image description here

所以我稍微减小了单元格大小以创建一些填充,这更接近但我需要大约一半的填充:

_cellSize = CGSizeMake(UIScreen.mainScreen().bounds.width/4.4,UIScreen.mainScreen().bounds.width/4.4)

enter image description here

所以我尝试让单元格更大一些,然后滚动到下一行并再次放入3个带有巨大填充的项目。

_cellSize = CGSizeMake(UIScreen.mainScreen().bounds.width/4.3,UIScreen.mainScreen().bounds.width/4.3)

enter image description here

我是否可以指定单元格之间的填充,而不确定填充是否低于“x”量,而是创建新行?我可以在新行之前设置阈值填充,例如0?

我想让它变瘦: enter image description here

1 个答案:

答案 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
    }