【问题标题】:UICollectionView vs UIPageViewControllerUICollectionView 与 UIPageViewController
【发布时间】:2016-08-15 14:17:33
【问题描述】:

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

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

请提供一些背景信息来支持您的观点!

【问题讨论】:

  • 你在这个“屏幕”中有什么样的内容?如果有类似的视图则使用集合视图,如果不同的控制器 - 页面视图控制器

标签: ios objective-c uicollectionview uipageviewcontroller


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      页面视图控制器允许用户在页面之间导航 内容,每个页面由其自己的视图控制器对象管理。

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

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-04-20
          • 1970-01-01
          • 1970-01-01
          • 2012-10-17
          • 1970-01-01
          相关资源
          最近更新 更多