我正在构建集合视图,其中部分具有垂直滚动内容(具有无限滚动视图),并且所有部分彼此相邻放置(这里也使用无限滚动视图,但水平)。它看起来像在这张图片上。
我面临几个问题:
- 标题视图位于视图层次结构中的集合视图下方(它不是
hidden
norenabled
,它只是被集合视图的其余部分覆盖),偏移部分没有帮助,因为它隐藏在整个集合视图下方,而不仅仅是部分. 这是屏幕截图,最右侧是视图层次结构中的第一个子视图,左侧是最后一个子视图(后面有切割的不相关视图)。 - 我的项目具有动态生成的大小(通过
.xib
文件中的自动布局实现),但组合布局的.estimated()
值不会根据单元格内容的给定高度而改变(所有单元格的宽度保持不变)。
这是我的代码:
func createCompositionalLayout() -> NSCollectionViewLayout {
let itemSize = NSCollectionLayoutSize(widthDimension: .absolute(300), heightDimension: .estimated(170))
let item = NSCollectionLayoutItem(layoutSize: itemSize)
let groupSize = NSCollectionLayoutSize(widthDimension: .absolute(300), heightDimension: .estimated(150))
let group = NSCollectionLayoutGroup.vertical(layoutSize: groupSize, subitem: item, count: 1)
let section = NSCollectionLayoutSection(group: group)
section.interGroupSpacing = 30
section.orthogonalScrollingBehavior = .continuous
let layoutSectionHeaderItemSize = NSCollectionLayoutSize(widthDimension: .absolute(300), heightDimension: .absolute(200))
let layoutSectionHeaderItem = NSCollectionLayoutBoundarySupplementaryItem(layoutSize: layoutSectionHeaderItemSize, elementKind: NSCollectionView.elementKindSectionHeader, alignment: .top)
section.boundarySupplementaryItems = [layoutSectionHeaderItem]
let configuration = NSCollectionViewCompositionalLayoutConfiguration()
configuration.scrollDirection = .horizontal
configuration.interSectionSpacing = 30
let layout = NSCollectionViewCompositionalLayout(section: section, configuration: configuration)
return layout
}