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

2024-05-17

我有一个 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 吗?

I want to make it this thin: enter image description here


您只需要进行正确的计算,包括您想要的边缘空间以及单元格之间的空间。例如,如果您想要 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
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

设置/覆盖 UICollectionView 中单元格之间的填充 的相关文章

随机推荐