1

我正在构建集合视图,其中部分具有垂直滚动内容(具有无限滚动视图),并且所有部分彼此相邻放置(这里也使用无限滚动视图,但水平)。它看起来像在这张图片上。

我面临几个问题:

  1. 标题视图位于视图层次结构中的集合视图下方(它不是hiddennor enabled,它只是被集合视图的其余部分覆盖),偏移部分没有帮助,因为它隐藏在整个集合视图下方,而不仅仅是部分. 这是屏幕截图,最右侧是视图层次结构中的第一个子视图,左侧是最后一个子视图(后面有切割的不相关视图)。
  2. 我的项目具有动态生成的大小(通过.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
    }

4

0 回答 0