项目集合视图的大小高度

Size height for item collection view

collection view中所有cell的size height设置成等高的方法是什么?

我有这个方法:

  func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
    return getCellSize()
  }

  func getCellSize() -> CGSize {
    let screenWidth: CGFloat = UIScreen.main.bounds.width
    let spaceBetweenItems: CGFloat = CGFloat(2) * 10
    let width: CGFloat = (screenWidth - 10 - spaceBetweenItems) / CGFloat(3.0)
    return CGSize(width: width, height: CGFloat(140.0))
  }

这些是我的海关单元限制:

这是我的实际输出:

我的代码有什么问题或缺少一个约束?

在带有集合视图的故事板中:select 您的集合视图 -> 转到尺寸检查器 -> 将“估计尺寸”字段从“自动”更改为“none” like here。 但是如果你的文本太大,它会被像“一些大文本..”这样的点剪裁,所以你可以在属性检查器中将 UILabel 的字段“Autoshrink”更改为“最小字体比例”。

创建约束 CollectionViewHeight。

@IBOutlet weak var collectionViewHeight: NSLayoutConstraint!

然后,试试这个代码。

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    let height = collectionView.collectionViewLayout.collectionViewContentSize.height
    collectionViewHeight.constant = height
    self.view.layoutIfNeeded()
}