我一直在研究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个可垂直滚动的项目。
谢谢
答案 0 :(得分:0)
groupSize height 应该是你单元格的高度,例如,像这样:
filter_map