以编程方式配置最大项目间距(swift 3.0)

时间:2017-04-08 00:29:21

标签: ios swift uicollectionview

目前,每当我在UICollectionView中创建单元格时,每个单元格之间都有一个恒定的垂直间距。我想删除单元格之间的这个间距。研究类似的问题和文档,我发现这个间距来自一个实例属性; minimumInterItemSpacing,它的默认值是10.显然有两种方法可以改变这个值,

使用

collection​View(_:​layout:​minimum​Interitem​Spacing​For​Section​At:​)

我确实试图实施......

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

    return 0
}

还有,

直接设置最小Interitem间距属性。

使用...

var minimumInteritemSpacing: CGFloat { get set }

也许我错误地执行了它们,但间距仍然存在。 值得注意的是,我使用的是swift 3.0,并且该类被子类化为UICollectionViewController和UICollectionViewDelegateFlowLayout。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

在实例化UICollectionViewController的子类时以编程方式执行此操作,您可以这样做:

let layout = UICollectionViewFlowLayout()
layout.minimumLineSpacing = 0

let collectionViewController = MyCollectionViewController(collectionViewLayout: layout))

如果您的班级不是UICollectionViewController的子类,您可以创建自己的collectionView(不要忘记实施UICollectionViewDelegateUICollectionViewDataSource协议):< / 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