【问题标题】:UIPageViewController transitionCoordinatorUIPageViewController 过渡协调器
【发布时间】:2017-09-05 09:09:13
【问题描述】:

是否有可能获得transitionCoordinatorUIPageViewController

每次我尝试获取它都是nil。它甚至使用一个吗?

如果没有,是否有一种简单的方式来响应页面之间的滚动进度?

(hacky = 迭代子视图以获取滚动视图并成为滚动视图委托。这并不理想,因为UIPageViewController 对其滚动视图具有“魔力”)

谢谢

【问题讨论】:

  • 您打算如何处理进度?也许还有另一种获取该信息/执行操作的方法。
  • @Alistra 我有一个需要在页面之间更改颜色的背景。例如第 1 页为红色,第 2 页为橙色。需要在页面之间的滚动旁边在红色和橙色之间进行动画处理。我已经在滚动视图中作为示例完成了它,但努力在 UIPageViewController 中找到一种简单的方法。
  • 嘿@Fogmeister,找到解决方法了吗?
  • 你有没有发现进步的机会?
  • UIPageViewController还有一个问题,就是在当前页面做了viewDidAppear之后,意外的将其他页面的视图添加到了窗口中stackoverflow.com/q/43531127/259521

标签: ios swift uipageviewcontroller transition-coordinator


【解决方案1】:

经过多年的实验,我从未发现 UIPageViewController 的 transitionCoordinator 不是 nil 的情况。

而且,正如 Fogmeister 在这个原始问题和 cmets 中指出的那样,因此也没有很好的方法来跟踪页面视图控制器滚动动画并与之协调。

我的解决方案是滚动我自己的分页滚动视图,它执行 UIPageViewController 所做的工作,即它预加载此之前和之后的页面视图,但不预加载其他页面视图,以便节省内存。现在我们有了一个普通的滚动视图,我们可以作为它的代理,我们可以做任何与滚动相关的事情。

这并不难,事实上,在 UIPageViewController 出现之前,我们曾经这样做过(是的,我记得很清楚那些日子)。

Apple 甚至提供了一个示例:https://developer.apple.com/library/archive/samplecode/PageControl/Introduction/Intro.html

【讨论】:

  • 是的,这就是我在需要响应滚动视图时所做的。
  • 我们应该向 Apple 提出改进请求吗?
  • 可能值得。如果有足够多的人提出要求,它可能会获得一些牵引力。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-09
  • 2023-04-08
  • 1970-01-01
相关资源
最近更新 更多