控制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的属性中,如下所示..