Ios UICompositionalLayout未按预期工作(垂直表格滚动和水平分页)
我一直在深入研究iOS 13中引入的“新”组合布局api,希望找到一种解决方案,解决在Ios UICompositionalLayout未按预期工作(垂直表格滚动和水平分页),ios,swift,uicollectionview,uicollectionviewcompositionallayout,Ios,Swift,Uicollectionview,Uicollectionviewcompositionallayout,我一直在深入研究iOS 13中引入的“新”组合布局api,希望找到一种解决方案,解决在UICollectionViewCell中嵌入UITableView的人为方法。 我在过去使用过这个令人头痛的解决方案,以便同时提供水平页面滚动和垂直表格滚动。这是一种非常麻烦的做事方式,自从CompositionalLayout发布以来,我一直渴望尝试重构它 到目前为止,没有运气。我可以使水平滚动和垂直滚动工作,但无法通过“应用商店”的行为,即每行以独立的方式水平滚动。 有谁有幸实现了类似的解决方案吗 这是我
UICollectionViewCell
中嵌入UITableView
的人为方法。
我在过去使用过这个令人头痛的解决方案,以便同时提供水平页面滚动和垂直表格滚动。这是一种非常麻烦的做事方式,自从CompositionalLayout
发布以来,我一直渴望尝试重构它
到目前为止,没有运气。我可以使水平滚动和垂直滚动工作,但无法通过“应用商店”的行为,即每行以独立的方式水平滚动。
有谁有幸实现了类似的解决方案吗
这是我的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个可垂直滚动的项目
谢谢groupSize高度应该是单元格的高度,例如:
let itemSize = NSCollectionLayoutSize(widthDimension: .fractionalWidth(1.0), heightDimension: .fractionalHeight(1.0))
let item = NSCollectionLayoutItem(layoutSize: itemSize)
let groupSize = NSCollectionLayoutSize(widthDimension: .fractionalWidth(0.8), heightDimension: .absolute(250.0))
let group = NSCollectionLayoutGroup.vertical(layoutSize: groupSize, subitems: [item])
我不明白目标是什么。“你能画一张图表吗?”马特补充道。我不懂这个图表。这只是一个静态屏幕截图;我不知道它应该做什么。对我来说,这应该是一个水平滚动的集合视图,其中每个组都是当天发生的事情的垂直滚动序列?很抱歉。这是草图中的UI设计。但没错,这正是我们想要的。当你水平滚动时,你应该移动到第二天,当天的所有事件都垂直滚动。好吧,第一个问题是你忘了将其设置为水平滚动布局。