将单元格放置在swift中并排放置在集合视图中

时间:2015-11-04 09:52:33

标签: ios swift uicollectionview uicollectionviewcell uicollectionviewlayout

默认情况下,集合视图中的单元格将在它们之间添加空格,以便到达集合视图的边框之间。在我为iPad制作的应用程序中,我需要能够并排强制单元格(间距= 0)。作为流布局或集合视图单元的一部分,没有包含任何方法,所以有没有办法可以做到这一点?

2 个答案:

答案 0 :(得分:3)

您要寻找的是flowLayout的以下属性:minimumInterimSpacingminimumLineSpacing 如果将它们设置为0,则collectionView中的项目之间将没有间距。

在代码中,您通常会这样做(没有Storyboard):

override func loadView() {
    super.loadView()

    //
    // layout
    //

    let layout = UICollectionViewFlowLayout()
    layout.minimumInteritemSpacing =  0
    layout.minimumLineSpacing      = 10

    //
    // collectionView
    //

    self.collectionView = UICollectionView(frame: CGRectZero, collectionViewLayout: layout)
    self.view.addSubview(collectionView)
}

如果要动态设置这些属性,请实现UICollectionViewFlowLayout的相应方法(也应该与Storyboard一起使用)。

class MyViewController: UIViewController,
    UICollectionViewDelegate, 
    UICollectionViewDataSource,
    UICollectionViewDelegateFlowLayout {

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

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

    // the rest of your code

}

答案 1 :(得分:1)

如果您使用的是Storyboard,请选择CollectionViewFlowLayout并将Min Spacing更改为0.

enter image description here