【发布时间】:2026-02-22 02:35:02
【问题描述】:
我目前定义了以下组合布局:
func compose() -> NSCollectionLayoutSection {
let heroItemSize = NSCollectionLayoutSize(
widthDimension: .fractionalWidth(2/3),
heightDimension: .estimated(550)
)
let heroItem = NSCollectionLayoutItem(layoutSize: heroItemSize)
let sideKickItemSize = NSCollectionLayoutSize(
widthDimension: .fractionalWidth(1.0),
heightDimension: .fractionalHeight(0.5)
)
let sideKickItem = NSCollectionLayoutItem(layoutSize: sideKickItemSize)
let sideKickGroupSize = NSCollectionLayoutSize(
widthDimension: .fractionalWidth(1/3),
heightDimension: .fractionalHeight(1.0)
)
let sideKickGroup = NSCollectionLayoutGroup.vertical(
layoutSize: sideKickGroupSize,
subitems: [sideKickItem, sideKickItem]
)
let topGroupSize = NSCollectionLayoutSize(
widthDimension: .fractionalWidth(1.0),
heightDimension: .estimated(550)
)
let topGroup = NSCollectionLayoutGroup.horizontal(
layoutSize: topGroupSize,
subitems: [heroItem, sideKickGroup]
)
return NSCollectionLayoutSection(group: topGroup)
}
这给了我以下布局:
理想的情况是绿色单元格(heroItem)的估计高度应该领先。紫色单元格(sideKickItem)应该和绿色单元格一样高。
我不确定为什么布局最终使用高度 550 作为最终高度,这使得紫色单元格的内容变得很大。
所以最后我希望布局如下图所示:
【问题讨论】:
标签: ios swift uicollectionview uicollectionviewcompositionallayout