我一直在挖掘 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 个垂直滚动的项目。
谢谢