控制UICollectionViewController中单元格之间的间隙

我的细胞似乎有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 

而这两条线也没有帮助。

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

从逻辑上讲,缺口值应该基于单元大小 ,编辑最小空间导致应该如何显示行。 为了使其更清楚,考虑(想象)以下情况:

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

到目前为止这么好, 如果单元格的宽度应该大于屏幕宽度的一半(假设它应该是宽度的一半+ 2点)呢? 输出将是:每行将只包含1个单元格,旁边还有一半的宽度的间隙 – 2个点。

所以, 解决scheme确保为单元格设置合适的大小,通过实现集合View:layout:size对于Item Path:正确的项目。 你可能想检查这个问答 ,知道如何实现它。

希望这有助于。

尝试这个

  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 } 

改变这个值在uicollection view的属性中,如下所示..

在这里输入图像说明