我正在使用UICollectionView,其中我的单元格具有基于内容(文本大小)的自动宽度,例如第一行可能包含8个项目,第二行可能只包含1.这样工作正常。
我想设置我的UICollectionView的高度以显示所有可用的项目,但不是更多(不是底部的空白区域......)。如果我使用自动布局而不是设置高度或底部对齐约束。
但通过这种方式,高度将得到修复。有没有什么方法可以获得行数并动态计算高度?
这是我的故事板的样子:
答案 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
}
您应该查看下面的图片,演示如何操作。 希望它会有所帮助。