UICollectionView 与 UIPageViewController

UICollectionView vs UIPageViewController

我需要在我的应用程序中有不同的全屏视图。与 snapchat 的工作方式非常相似。视图应该能够相互通信。

我的问题是:我应该使用单元格与屏幕大小相同的 UICollectionView 还是应该使用 UIPageViewController?

请提供一些背景信息来支持您的意见!

我认为两者的目的截然不同。 UICollectionView 非常适合构建视图的马赛克(例如图片库),而 UIPageViewController 有点类似于书的翻页。后者似乎是您所需要的,但 UIPVC 似乎并没有提供很多 tweaking/customizations,例如自定义转换。在这种情况下,您可能希望从启用分页的 UIScrollView 开始,以重新创建类似但更有潜力的东西。这是 example.

A page view controller lets the user navigate between pages of content, where each page is managed by its own view controller object.

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIPageViewControllerClassReferenceClassRef/

因此,如果您打算从一个 ViewController 滑动到另一个,请转到页面 ViewController。如果您打算只有一个 ViewController 来处理全屏图像列表,请选择带有 collectionView 的视图控制器,或者您自己的 swipeView。

UIPageViewController 使用不同的视图控制器并加载多个控制器,因此与 UICollectionView 相比显然占用更多内存。因此,如果您需要的任务是较少的计算或步骤,那么建议使用 UICollectionView,其他情况下首选方法是使用 UIPageController。

个人意见:对于这种特定情况,我会使用页面视图控制器。集合视图有任何你必须考虑的事情,比如当设备旋转时你必须重新计算你在哪里,你必须显示哪个单元格,要求滚动到当前单元格,以及如果你正在显示视频或使用相机你可能必须完美地控制它,否则就会出现问题。 但是想想可能会添加到您的应用程序的新功能,如果您认为您可能会在屏幕上显示 2 个以上的项目,那么您最好选择一个集合视图。