如何实现具有多个部分和子部分的 uicollectionview?
how to implement a uicollectionview that has multiple sections and subsections?
uicollectionview 有 n 个部分(比如 1、2、3),其中有 m 个子部分(比如 1.1、1.2 等),这些子部分进一步分支为内部子部分(1.1.1、1.1.2 等),最终有 X 没有.其中的行数。
为什么不只使用三个集合视图和三个屏幕?
点击 Section 1
创建第二个屏幕,其中包含包含 Subsection 1
和 Subsection 2
部分的集合视图。
然后点击 Subsection 1
创建带有集合视图的第三个屏幕,其中包含部分 Row 1
、Row 1
、Row 1
、Row 1
.
我已经使用 UICollectionViewCompositionalLayout 实现了这个。用过
UICollectionViewCompositionalLayout { [self] (sectionNumber, environment) -> NSCollectionLayoutSection? in .... }
设置布局项并将它们垂直和水平分组以形成整个部分的布局的闭包。
供参考-
创建个人项目 (H: 50, W: 50) -
let item = NSCollectionLayoutItem(layoutSize: NSCollectionLayoutSize(widthDimension: .absolute(50), heightDimension: .absolute(50)))
创建 组(水平) -
let group = NSCollectionLayoutGroup.horizontal(layoutSize:
NSCollectionLayoutSize(widthDimension:
.absolute(item.layoutSize.widthDimension.dimension * CGFloat((data.count))),
heightDimension: .estimated(50)), subitem: item, count: (data.count))
组 - 垂直
let subGroup = NSCollectionLayoutGroup.vertical(layoutSize:
NSCollectionLayoutSize(widthDimension:
.absolute(CGFloat(width)),
heightDimension:
.absolute(heightForIndividualItem * CGFloat(data.count))),
subitems: group)
uicollectionview 有 n 个部分(比如 1、2、3),其中有 m 个子部分(比如 1.1、1.2 等),这些子部分进一步分支为内部子部分(1.1.1、1.1.2 等),最终有 X 没有.其中的行数。
为什么不只使用三个集合视图和三个屏幕?
点击 Section 1
创建第二个屏幕,其中包含包含 Subsection 1
和 Subsection 2
部分的集合视图。
然后点击 Subsection 1
创建带有集合视图的第三个屏幕,其中包含部分 Row 1
、Row 1
、Row 1
、Row 1
.
我已经使用 UICollectionViewCompositionalLayout 实现了这个。用过
UICollectionViewCompositionalLayout { [self] (sectionNumber, environment) -> NSCollectionLayoutSection? in .... }
设置布局项并将它们垂直和水平分组以形成整个部分的布局的闭包。
供参考-
创建个人项目 (H: 50, W: 50) -
let item = NSCollectionLayoutItem(layoutSize: NSCollectionLayoutSize(widthDimension: .absolute(50), heightDimension: .absolute(50)))
创建 组(水平) -
let group = NSCollectionLayoutGroup.horizontal(layoutSize:
NSCollectionLayoutSize(widthDimension:
.absolute(item.layoutSize.widthDimension.dimension * CGFloat((data.count))),
heightDimension: .estimated(50)), subitem: item, count: (data.count))
组 - 垂直
let subGroup = NSCollectionLayoutGroup.vertical(layoutSize:
NSCollectionLayoutSize(widthDimension:
.absolute(CGFloat(width)),
heightDimension:
.absolute(heightForIndividualItem * CGFloat(data.count))),
subitems: group)