UICompositionalLayout无法正常工作(垂直表滚动+水平分页)

时间:2020-03-03 15:54:13

标签: ios swift uicollectionview uicollectionviewcompositionallayout

我一直在研究iOS 13中引入的“新”合成布局api,希望找到一种解决方案,用于将UITableView嵌入UICollectionViewCell内的人为方法。 过去,我曾经使用过这种令人头痛的解决方案,以便同时提供水平页面滚动和垂直表滚动。这是一种非常繁琐的工作方式,自CompositionalLayout宣布以来,我一直很想提供重构的机会。

到目前为止,还没有运气。我可以进行水平滚动和垂直滚动工作,但不能克服“ App Store”行为,即每行以独立的方式水平滚动。 有人有幸实施类似的解决方案吗?

这是我的CollectionViewLayout代码:

func createOrthogonalScrollingLayout() -> UICollectionViewLayout {


    let itemSize = NSCollectionLayoutSize(widthDimension: .fractionalWidth(1.0), heightDimension: .fractionalHeight(0.5))
    let item = NSCollectionLayoutItem(layoutSize: itemSize)

    let groupSize = NSCollectionLayoutSize(widthDimension: .fractionalWidth(1.0), heightDimension: .fractionalHeight(1.0))
    let group = NSCollectionLayoutGroup.vertical(layoutSize: groupSize, subitems: [item])

    let section = NSCollectionLayoutSection(group: group)
    section.orthogonalScrollingBehavior = .groupPagingCentered
    section.interGroupSpacing = 16
    section.contentInsets = NSDirectionalEdgeInsets(top: 0, leading: 16, bottom: 0, trailing: 16)


    let layout = UICollectionViewCompositionalLayout(section: section)

    return layout

}

这将产生两个项目的垂直滚动和一个水平滚动,该滚动显示后续页面中的其余项目,但每页仅两个。我的目标是将“页面”除以一年中的每一天,每个页面应具有X个可垂直滚动的项目。

enter image description here

谢谢

1 个答案:

答案 0 :(得分:0)

groupSize height 应该是你单元格的高度,例如,像这样:

filter_map