如何使用单列创建集合视图?

时间:2017-02-20 08:22:52

标签: ios swift uicollectionviewcell uicollectionviewlayout

我正在尝试使用1列

创建collectionView
func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {
    return 1
}

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    return 10
}

但这并没有奏效。 主要问题是我的单元格大小动态变化。那么我可以将列限制为1吗?我需要按行加载单元格,而不是列。

2 个答案:

答案 0 :(得分:2)

首先,您可以使用UITableView来实现此功能。 其次如果想使用UICollectionView: -

1)在故事板中选择集合视图 - >转到属性 - >设置滚动方向 - >垂直
2)正确设置项目大小

   func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout,                          sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize
    {
       return CGSize(width:collectionView.frame.size.width, height:YourCellHeight)
    }

3)为单元格和线条设置适当的最小间距。

答案 1 :(得分:0)

我假设您希望集合视图的行为更像表视图。在那种情况下,我认为contentInset是您要寻找的内容。如果您所有的单元格都具有相同的宽度,并且您可以找到该宽度,则可以执行以下操作,以使收集视图始终位于水平居中的一列中。

let margin = (view.frame.width - cellWidth) / 2
let collectionViewInsets = UIEdgeInsets.init(top: 0, left: margin, bottom: 0, right: margin)
collectionView.contentInset = collectionViewInsets