嵌套多个 CollectionView
Nesting Multiple CollectionView
我正在构建以下列方式表示的布局。
层次结构如下:
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
有一个带有垂直滚动的主集合视图,其 header 是一张图像,并且有几个具有正常视觉效果的简单单元格。在大约 9 个单元格之后,我想要视图中的一部分,在该视图中,用户会看到另一个可以分页的滚动条,或者是自由形式的水平滚动条,它有一个标题和一个分配给该标题的 collecitonview(由图像组成)。现在用户应该能够来回滚动并仍然垂直滚动以访问更多图像。下面是相同的表示。
我真的无法在这里弄清楚视图的正确可能实现。此外,如果我在 parent 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 视图是一个简单的 collection 视图,具有垂直滚动并包含 n 个单元格;
-
Complex Cell
基本上是包含水平内容的单元格;无需使用 UIScrollView
,因为我们将使用两个水平 UICollectionView
,一个包含 headers('One','Second'...),另一个包含图片;设置水平滚动可以在 storyboard/xib 或 collectionView.collectionViewLayout as? UICollectionViewFlowLayout)?.scrollDirection = .horizontal
中完成
Complex Cell
是两个 collection 视图的 dataSource
和 delegate
;
Title Collection View
必须有isUserInteractionEnabled = false
(用户不能用手指滚动headers);
- 目标是根据
Image Collection View
滚动 Title Collection View
;你也许可以使用 scrollViewDidScroll
这是 UICollectionViewDelegate
的一种方法(记住 UICollectionViewDelegate
扩展了 UIScrollViewDelegate
)
其他需要考虑的事项:
Complex Cell
应该有一个固定大小(在这种情况下可能是非常复杂的句柄动态大小)
- 您可以通过使用
UITableView
而不是 UICollectionView
来简化垂直滚动,但这将不允许您使用 Simple Cell
[=44 的网格布局=]
我正在构建以下列方式表示的布局。
层次结构如下:
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
有一个带有垂直滚动的主集合视图,其 header 是一张图像,并且有几个具有正常视觉效果的简单单元格。在大约 9 个单元格之后,我想要视图中的一部分,在该视图中,用户会看到另一个可以分页的滚动条,或者是自由形式的水平滚动条,它有一个标题和一个分配给该标题的 collecitonview(由图像组成)。现在用户应该能够来回滚动并仍然垂直滚动以访问更多图像。下面是相同的表示。 我真的无法在这里弄清楚视图的正确可能实现。此外,如果我在 parent 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 视图是一个简单的 collection 视图,具有垂直滚动并包含 n 个单元格;
-
Complex Cell
基本上是包含水平内容的单元格;无需使用UIScrollView
,因为我们将使用两个水平UICollectionView
,一个包含 headers('One','Second'...),另一个包含图片;设置水平滚动可以在 storyboard/xib 或collectionView.collectionViewLayout as? UICollectionViewFlowLayout)?.scrollDirection = .horizontal
中完成
Complex Cell
是两个 collection 视图的dataSource
和delegate
;Title Collection View
必须有isUserInteractionEnabled = false
(用户不能用手指滚动headers);- 目标是根据
Image Collection View
滚动Title Collection View
;你也许可以使用scrollViewDidScroll
这是UICollectionViewDelegate
的一种方法(记住UICollectionViewDelegate
扩展了UIScrollViewDelegate
)
其他需要考虑的事项:
Complex Cell
应该有一个固定大小(在这种情况下可能是非常复杂的句柄动态大小)- 您可以通过使用
UITableView
而不是UICollectionView
来简化垂直滚动,但这将不允许您使用Simple Cell
[=44 的网格布局=]