我正在构建以下列方式表示的布局。
层次结构如下:
view
|
|__CollectionView (CV1), vertical scroll
|__ CV1.SimpleCell1
|__ CV1.SimpleCell ...
|__ CV1.SimpleCell 9
|
|__CV1.Complex
|
|__ScrollView, horizontal scroll
|
|__CollectionView2 (CV2), horizontal scroll
| |
| |__n Titles
|
|__CollectionView3 (CV3), vertical scroll only
|
|__n images
有一个垂直滚动的 maincollection View ,其标题是一个图像,并且有几个具有正常视觉效果的简单单元格。在大约 9 个单元格之后,我想要 View 中的一部分,在该 View 中,用户会看到另一个可以分页的滚动条,或者是自由形式的水平滚动条,它有一个标题和一个分配给该标题的 collecitonview(由图像组成)。现在用户应该能够来回滚动并仍然垂直滚动以访问更多图像。下面是相同的表示。 我真的无法在这里弄清楚 View 的正确可能实现。此外,如果我在父 collectionview 单元格中嵌入一个动态 collectionview,我不确定高度将如何动态。
整个架构图是:
我真的很期待一些指导。我一直为此疯狂,非常感谢任何帮助。
谢谢。如果需要,请告诉我更多信息。
最佳答案
按照你说的,我会做这样的事情;可能不准确,但这是主要思想。
view
|
|__CollectionView Vertical Scrolling or TableView
|
|__CV1.Simple Cell
|__ …
|__CV1.Simple Cell
|
|__CV1.Complex Cell
|__CollectionView - Titles - Horizontal scroll (no interaction)
| |
| |__n Title Header Cell
|
|__CollectionView - Images - Horizontal scroll
|
|__n Image Cell
因此,外部 Collection View 是一个简单的 Collection View ,具有垂直滚动并包含 n 个单元格;
Complex Cell
基本上是包含水平内容的单元格;无需使用UIScrollView
,因为我们将使用两个水平的UICollectionView
,一个包含标题('One'、'Second'...),一个包含图像;设置水平滚动可以在 storyboard/xib 中完成或做collectionView.collectionViewLayout as? UICollectionViewFlowLayout)?.scrollDirection = .horizontal
Complex Cell
是两个 Collection View 的dataSource
和delegate
;Title Collection View
必须有isUserInteractionEnabled = false
(用户不能用手指滚动标题);- 目标是根据
Image Collection View
滚动Title Collection View
;您可以使用scrollViewDidScroll
,这是UICollectionViewDelegate
的一种方法(请记住UICollectionViewDelegate
扩展了UIScrollViewDelegate
)<
其他需要考虑的事情:
Complex Cell
应该有一个固定大小(在这种情况下可以是非常复杂的处理动态大小)- 您可以通过使用
UITableView
而不是UICollectionView
来简化垂直滚动,但这将不允许您为Simple 使用网格布局手机
关于ios - 嵌套多个 CollectionView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56238338/