如何使用 UIPageViewController 实现像 iOS 照片应用程序那样滑动照片?

How can I implement the photos swiping like iOS Photos app using the UIPageViewController?

假设我有大量 photoId,我可以在照片应用程序 requestPhoto API 中使用它们来获取照片。我如何实现 UIPageViewController 以容纳这样的大型数组。在滑动 left/right 时为这些照片中的每一张创建视图控制器不会导致应用程序性能下降。谁能建议一个更好的方法来解决这个问题?我到处都看过,但找不到任何东西。我想另一种构建这个问题的方法是“我怎样才能用一组动态数据而不是静态数字来实现 UIPageViewController

我建议采用以下方法

  1. 为您的照片界面使用 UICollectionView。
  2. 为 的集合视图选择水平滚动,以便您的用户可以左右滑动。
  3. 数据源数组可以保存您的照片来源,并允许您的照片查看器是动态的。只需更新数组并在 collectionview 上触发 reloadData() 来刷新 UI。如果您不想让用户知道刷新,您可以跟踪用户上次查看的项目并在刷新时滚动到该项目。

  4. Collectionview 会自动为您处理内存,所以您不必担心。

对于遇到同样问题的其他人。我发现这个视频很有帮助。 https://www.youtube.com/watch?v=ItdPXinQOp8?

据此,我创建了一个带有惰性变量的数组,将所有视图控制器推送到数组中。视图控制器仅在需要时加载,以防止任何性能下降。所以如果你有 n 个视图控制器并不重要。

所以基本上方法是:

  1. 拥有一个数组,其中包含您要滑动的所有图像 ID
  2. 创建一个惰性变量 newArray,它将遍历 imageIDs(Array) 并通过 api 调用获取图像。别担心它只会在需要时调用 api 。使用接收到的图像初始化详细视图控制器并将 viewcontroller 推入 newArray.
  3. 像往常一样使用新形成的所有 viewcontroller 数组设置 UIPagecontroller 委托。