簡體   English   中英

組合布局中的集合視圖自調整單元格問題

[英]Collection view self-sizing cells issue in Compositional layout

我正在使用集合視圖組合布局來顯示帶有兩個標簽的單元格,這些標簽的高度可以增加,具體取決於標簽的內容。 單元格中的其他所有內容都是固定的。
我做了一個這樣的部分:

let item = NSCollectionLayoutItem(
            layoutSize: NSCollectionLayoutSize(
                widthDimension: .fractionalWidth(1),
                heightDimension: .fractionalHeight(1)))

let group = NSCollectionLayoutGroup.vertical(
            layoutSize: NSCollectionLayoutSize(
                widthDimension: .fractionalWidth(1),
                heightDimension: .estimated(300)),
            subitems: [item])

let section = NSCollectionLayoutSection(group: group)

問題是,它要么太大,要么太小,但從未計算出正確的高度。 我的假設是,這是因為我在configure方法中設置了 label 的文本,而不是在單元格初始化期間。

let cell = collectionView.dequeueReusableCell(
                reusableCell: MyCustomCell.self,
                indexPath: indexPath)
cell.configure(viewModel: viewModel)

有什么辦法可以解決嗎? 我嘗試使布局無效或重新加載數據以重新計算高度,但沒有幫助。

由於標簽位於項目上並且項目是確定組大小的標簽,因此您需要在項目上有一個.estimated高度尺寸,如果您只計划每組有一個項目,那么該組的高度尺寸將是與項目相同。 所以在這種情況下,項目和組都應該有.estimated(300) 您當前的代碼基本上是在說:使項目與我們估計的組高 300pt 一樣高,但該組無法知道它的高度,因此您最終得到了錯誤的布局。 通常,您只想對嵌套在具有絕對或分數維度(沿給定軸)的組中的項目使用分數維度以避免這種情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM