垂直放置集合视图单元格而不是水平放置?
Posted
技术标签:
【中文标题】垂直放置集合视图单元格而不是水平放置?【英文标题】:Place the collection view cells vertically instead of horizontally? 【发布时间】:2018-03-23 16:20:21 【问题描述】:如何设计 UICollectionView 使其垂直填充集合视图单元格(按列)而不是水平填充(按行)?
集合视图应该是垂直可滚动的,我不应该改变集合单元格的大小并动态确定行数吗?
【问题讨论】:
使单元格的宽度与collectionview的宽度相同 设置流布局滚动方向为horizontal
.
它正在工作,但我应该也可以限制行数,我该怎么做?
【参考方案1】:
(YOUR_COLLECTIONVIEW_NAME.collectionViewLayout as? UICollectionViewFlowLayout).scrollDirection = .horizontal
【讨论】:
请解释这段代码的作用以及它如何/为什么解决了 OP 的问题。【参考方案2】:我使用这个代码:
let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout()
layout.scrollDirection = .horizontal
myCollectionView.collectionViewLayout = layout
对于有限的行数,您可以设置 collectionView 的高度和设置单元格的高度和间距。例如,如果您需要 2 个列中的单元格,您将编写:
layout.sectionInset = UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10)
layout.itemSize = CGSize(width: self.collectionView.frame.size.width / 5, height: self.collectionView.frame.size.height / 2.5)
layout.minimumInteritemSpacing = 0
layout.minimumLineSpacing = 0
您可以根据需要更改此参数
【讨论】:
这对我很有帮助,但集合视图应该是垂直滚动的,并且行数是动态确定的,我不应该水平滚动。 哦,哇。 CollectionView 是具有其属性的默认对象。我不知道,但你可以计算一行显示多少个单元格,并据此计算你需要多少行。 并以编程方式进行,例如,将 CollectionView 放在 scrollView 中,并设置 CollectionView.isScrollEnabled = false 我可以这样做,但是由于滚动方向是水平的,因此单元格可以水平滚动。以上是关于垂直放置集合视图单元格而不是水平放置?的主要内容,如果未能解决你的问题,请参考以下文章
UICollectionViewLayout 水平部分,垂直单元格