UICollectionView 作为 iOS 中 APPLICATION 的 HEADER

Posted

技术标签:

【中文标题】UICollectionView 作为 iOS 中 APPLICATION 的 HEADER【英文标题】:UICollectionView as the HEADER of the APPLICATION in iOS 【发布时间】:2017-06-26 06:15:37 【问题描述】:

我想将UICollectionView 设置为应用程序的标题。请看下面的图片:-

在这张图片中,我必须在红色椭圆区域添加一个集合视图。几乎有 15-20 个选项。而且我必须从所有选项中打开不同的视图控制器。

有什么办法可以添加一个 UICollectionView 作为 APPLICATION 的 HEADER 吗?

任何帮助将不胜感激。

【问题讨论】:

您是否使用 uitableview 列出以下选项? 现在我已经在所有视图控制器中添加了该集合视图。所以我想让它全球化。 【参考方案1】:

您似乎需要有关视图控制器架构和 UI 设置的指导。我建议您进行以下快速设置:

MainViewController,包含以下视图 -

CollectionView 作为标题 ContentViewController 的视图作为子视图(添加为 childViewController),具有特定于从父视图控制器传递给它的类型的表/UI 和数据(当从集合视图中选择类型时)。

MainViewController 管理从集合中选择的选项,并在此基础上设置内容视图控制器。

如果您的 UI 因不同的标题选项/类型而不同,您可以使用不同的视图控制器作为 ContentViewController,或者如果 UI 相同,则使用相同的类但不同的实例。

【讨论】:

【参考方案2】:

终于解决了!!感谢@Tushar,帮助我找出解决方案。

我刚刚创建了一个控制器。在那个控制器中,我在标题上添加了UICollectionView。在此之前,添加了一个UIView

现在,当我们点击集合视图时,我已经创建了另一个控制器的对象,我希望在下面添加它。并将该视图添加为子视图。请参考以下代码:-

FirstViewController *firstViewObj = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];
[self addChildViewController:firstViewObj];
firstViewObj.view.frame=myContentView.bounds;
[myContentView addSubview:firstViewObj.view];
[firstViewObj didMoveToParentViewController:self];
//[firstViewObj willMoveToParentViewController:nil];

请下载Demo Code了解更多详情。

希望,这就是您要找的。任何问题都可以回复我。 :)

【讨论】:

以上是关于UICollectionView 作为 iOS 中 APPLICATION 的 HEADER的主要内容,如果未能解决你的问题,请参考以下文章

iOS版;以编程方式uicollectionView与自定义标头

具有 UIView 作为子视图的 UICollectionView 的选择性手势识别

将最小部署目标升级到 iOS 14 后,UICollectionView 停止显示单元格

ios UICollectionView 单元格选择和取消选择问题

在 UICollectionView 中自动调整单元格(全部在代码中)

UICollectionView 的 didSelectItemAt 仅在双击时调用