目前,每当我在UICollectionView中创建单元格时,每个单元格之间都有一个恒定的垂直间距。我想删除单元格之间的这个间距。研究类似的问题和文档,我发现这个间距来自一个实例属性; minimumInterItemSpacing,它的默认值是10.显然有两种方法可以改变这个值,
使用
collectionView(_:layout:minimumInteritemSpacingForSectionAt:)
我确实试图实施......
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
return 0
}
还有,
直接设置最小Interitem间距属性。
使用...
var minimumInteritemSpacing: CGFloat { get set }
也许我错误地执行了它们,但间距仍然存在。 值得注意的是,我使用的是swift 3.0,并且该类被子类化为UICollectionViewController和UICollectionViewDelegateFlowLayout。
有什么建议吗?
答案 0 :(得分:0)
在实例化UICollectionViewController
的子类时以编程方式执行此操作,您可以这样做:
let layout = UICollectionViewFlowLayout()
layout.minimumLineSpacing = 0
let collectionViewController = MyCollectionViewController(collectionViewLayout: layout))
如果您的班级不是UICollectionViewController
的子类,您可以创建自己的collectionView
(不要忘记实施UICollectionViewDelegate
和UICollectionViewDataSource
协议):< / p>
lazy var collectionView: UICollectionView = {
let layout = UICollectionViewFlowLayout()
layout.minimumLineSpacing = 0
let uicv = UICollectionView(frame: self.view.frame, collectionViewLayout: layout)
uicv.delegate = self
uicv.dataSource = self
uicv.backgroundColor = .white
return uicv
}()
更新
还有另一种方法可以实现,如果您使用的是UICollectionViewController
的子类,则可以在viewDidLoad()
方法中实现:
let layout = collectionView?.collectionViewLayou as! UICollectionViewFlowLayout
layout.minimumLineSpacing = 0