自动高度UICollectionView

时间:2016-02-23 05:50:05

标签: ios swift uicollectionview uistoryboard

我正在使用UICollectionView,其中我的单元格具有基于内容(文本大小)的自动宽度,例如第一行可能包含8个项目,第二行可能只包含1.这样工作正常。

我想设置我的UICollectionView的高度以显示所有可用的项目,但不是更多(不是底部的空白区域......)。如果我使用自动布局而不是设置高度或底部对齐约束。

但通过这种方式,高度将得到修复。有没有什么方法可以获得行数并动态计算高度?

这是我的故事板的样子:

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以在设计时使用固定高度约束,并在计算延迟高度值时在运行时更改它。高度约束需要在代码中引用,而不是需要根据计算的高度进行更改。

// Height constraint of collection view
@IBOutlet weak var heightContstraint: NSLayoutConstraint!

override func viewDidLoad() {
    super.viewDidLoad()

    setHeightOfCollectionView()
}

func setHeightOfCollectionView() {
    // Calculate height of collection view depending on collection item count
    let calculatedHeight:CGFloat = 500.0

    heightContstraint.constant = calculatedHeight
}

您应该查看下面的图片,演示如何操作。 希望它会有所帮助。

enter image description here