我有一个由合成布局+可变数据源提供支持的集合视图。它使用三个补充边界项:页眉,页脚和“前导页眉”。
问题是:前导标头的小数部分基于整个容器,而不是部分。因此,我不能简单地设置标题的“分数高度= 1”。相反,我需要计算节的大小,并使用“绝对值”将标题的高度设置为其。 但是如何获取该部分的大小?
func createFoodSection(using section: FoodCategory, sectionIndex: Int) -> NSCollectionLayoutSection {
let itemSize = NSCollectionLayoutSize(widthDimension: .estimated(75),
heightDimension: .fractionalHeight(1.0))
let item = NSCollectionLayoutItem(layoutSize: itemSize)
let groupSize = NSCollectionLayoutSize(widthDimension: .fractionalWidth(1.0),
heightDimension: .absolute(39))
let group = NSCollectionLayoutGroup.horizontal(layoutSize: groupSize,
subitems: [item])
let leftSize = NSCollectionLayoutSize(widthDimension: .absolute(5.0),
heightDimension: .absolute(120.0))
let leftSection = NSCollectionLayoutBoundarySupplementaryItem(layoutSize: leftSize,
elementKind: "leadingKind",
alignment: .leading)
let topSectionHeader = createSectionHeader()
let layoutSection = NSCollectionLayoutSection(group: group)
layoutSection.boundarySupplementaryItems = [topSectionHeader, leftSection]
return layoutSection
}
该部分中的组高度固定为.absolute(39)。因此,如果我知道某个部分中的组数,我应该能够计算高度。
加分!这些部分可展开折叠。意味着页眉的高度需要随着其部分的展开折叠而改变。