在单个 UICollectionViewController 中管理多个 UICollectionViewLayout

Posted

技术标签:

【中文标题】在单个 UICollectionViewController 中管理多个 UICollectionViewLayout【英文标题】:Managing multiple UICollectionViewLayouts within a single UICollectionViewController 【发布时间】:2013-09-26 15:34:32 【问题描述】:

抱歉,如果这是重复的,但我在最初的搜索中找不到任何东西。我正在努力理解这个设计。

我正在尝试使用新的 ios7 API 在 UICollectionViewLayouts 之间创建一些交互式转换 - UICollectionViewTransitionLayout Documentation

但是,我不确定如何最好地在一个 UICollectionViewController 中管理多个 UICollectionViewLayouts,或者如何在一个 UICollectionViewController 之间交互移动。

这个问题更多是一个设计问题,关于如何编写代码而不是不了解交互式布局的实际实现和更改布局 - 我应该使用UICollectionViewController 吗?我真的不需要继承 UICollectionViewLayout,因为我对 UICollectionViewFlowLayout 提供的功能非常满意。

我的理想和最终目标是实现一个UIViewController(或多个UIViewControllers),其中每个都有一个UICollectionView,在使用UIGestureRecognizers之间进行推送和弹出。

谢谢。

编辑

还发现了一个在我之前提交的类似问题,UICollectionView interactive layout transition using iOS 7 APIs

【问题讨论】:

【参考方案1】:

更新:

我已将我的解决方案代码上传到 GitHub...这是一项正在进行的工作

UICollectionView Interactive Transitions

我已决定使用单个UIViewController 的解决方案,它将维护多个UICollectionViewFlowLayout 对象,定义为控制器上的属性。

每个都将根据我希望 UICollectionView 的外观进行配置。

然后,我将使用 iOS7 的交互式过渡来处理两个定义的布局之间的过渡。我还可以使用这个基本调用来处理快速的非交互式转换:

[UICollectionView setCollectionView:animated:]

我没有收到答案,所以很遗憾不知道这是否是解决问题的最佳方法。

【讨论】:

以上是关于在单个 UICollectionViewController 中管理多个 UICollectionViewLayout的主要内容,如果未能解决你的问题,请参考以下文章

使用 lambda 在单个实例上重新定义单个 ruby​​ 方法

在单个 NSOperationQueue iOS 中管理多个操作,例如暂停/恢复单个操作

如何在python中将单个数字转换为单个项目列表

单个实例[Windows必须在处理单个实例时重新打开...]

使用单个客户端和单个会话模拟 SQL Server 上的死锁

在单个查询中将一个表的多个列连接到另一个表的单个列