【问题标题】:Place the collection view cells vertically instead of horizontally?垂直放置集合视图单元格而不是水平放置?
【发布时间】:2018-03-23 16:20:21
【问题描述】:

如何设计 UICollectionView 使其垂直填充集合视图单元格(按列)而不是水平填充(按行)?

集合视图应该是垂直可滚动的,我不应该改变集合单元格的大小并动态确定行数吗?

【问题讨论】:

  • 使单元格的宽度与collectionview的宽度相同
  • 设置流布局滚动方向为horizontal.
  • 它正在工作,但我应该也可以限制行数,我该怎么做?

标签: ios swift uicollectionview uicollectionviewcell uicollectionviewlayout


【解决方案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
  • 我可以这样做,但是由于滚动方向是水平的,因此单元格可以水平滚动。
猜你喜欢
  • 2012-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多