控制UICollectionViewController中的单元格之间的差距

时间:2017-04-05 11:22:29

标签: ios swift xcode uicollectionview uicollectionviewlayout

我的细胞似乎有大约20分的差距,我想控制这个值,但我发现的关于这个问题的每个答案都不起作用。

我试过了:

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
    return 0
}

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
    return 0
}

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
    return UIEdgeInsets.zero
}

没有任何有用的输出,也是:

layout.minimumLineSpacing = 0
layout.minimumInteritemSpacing = 0

这两行也没有帮助。

请注意我没有使用故事板!

3 个答案:

答案 0 :(得分:0)

试一下

 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionat section: Int) -> CGFloat {
print("collectionView===\(collectionView)")
print("collectionViewLayout===\(collectionViewLayout)")
print("section===\(Int(section))")
return 10.0
}

行间距

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionat section: Int) -> CGFloat {
print("collectionView===\(collectionView)")
print("collectionViewLayout===\(collectionViewLayout)")
print("section===\(Int(section))")
return 10.0
}


func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionat section: Int) -> UIEdgeInsets {
print("collectionView===\(collectionView)")
print("collectionViewLayout===\(collectionViewLayout)")
print("section===\(Int(section))")
// return UIEdgeInsetsMake(0,8,0,8);  // top, left, bottom, right
return UIEdgeInsetsMake(20, 20, 20, 20)
// top, left, bottom, right
}

答案 1 :(得分:-1)

更改因此值在uicollection视图的属性中..如下所示..

enter image description here

答案 2 :(得分:-2)

从逻辑上讲,间隙值应该基于单元格大小,编辑最小空格会导致行的显示方式。为了更清楚,请考虑(想象)以下场景:

要求每行显示2个单元格,每个单元格的宽度应该是屏幕宽度的一半,如果最小空格设置为零,则输出将是:两个单元格应该填充屏幕宽度。

到目前为止很好,但是如果单元格的宽度应该大于屏幕宽度的一半(我们认为它应该是屏幕宽度的一半)宽度+2分)?输出将是:每行只包含1个单元格,旁边是与屏幕一半宽度的间隙--2个点。

因此,解决方案确保通过正确实施collection​View:​layout:​size​For​Item​At​Index​Path:​来为单元格设置合适的大小。您可能需要检查this Q&A以了解如何实现它。

希望这会有所帮助。