2016-02-23 121 views
2

我正在使用UICollectionView,並在其中我的單元格具有基於內容(文本大小)的自動寬度,例如第一行可能包含8個項目,第二行可能只包含1個項目。這工作正常。自動高度UICollectionView

我想設置我的UICollectionView的高度來顯示所有可用的項目,但不是更多(不是底部的空白空間......)。如果我使用自動佈局比我必須設置高度或底部對齊約束。

但是這樣高度將是固定的。有什麼辦法可以獲得行數並動態計算高度?

這裏是我的故事板是什麼樣子:

enter image description here

+0

檢查我的答案在這裏https://stackoverflow.com/questions/42437966/how-to-adjust-height-of-uicollectionview-to-be-the-height-of-the-content-大小的/ 42438709#42438709 – hasan83

回答

0

可以使用固定高度限制在設計時比在運行時改變它,當遞延高度值來計算。身高約束需要在代碼中引用,並且需要根據計算出的身高來更改。

// 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