【问题标题】:Placing cells in a collection view side by side in swift快速将单元格并排放置在集合视图中
【发布时间】:2015-11-04 09:52:33
【问题描述】:

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

【问题讨论】:

  • 请为collectionview发布您的代码

标签: ios swift uicollectionview uicollectionviewcell uicollectionviewlayout


【解决方案1】:

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

在代码中,您通常会这样做(没有情节提要):

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

}

【讨论】:

    【解决方案2】:

    如果您使用 Storyboard,则选择 CollectionViewFlowLayout 并将 Min Spacing 更改为 0。

    【讨论】:

    • 虽然这是正确的,但也不是很有帮助。 “......并改变它”改变什么?到什么?你所说的(或截图)是什么意思?
    猜你喜欢
    • 2014-10-24
    • 1970-01-01
    • 2020-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多