如何在 PageViewController 中将 CGGradients 混合在一起?

How to blend CGGradients together in PageViewController?

我有一个有 4 个页面的 UIPageViewController,方法是从这里获取示例:http://www.appcoda.com/uipageviewcontroller-storyboard-tutorial/ 并删除设置的图像并为每个视图添加自定义渐变。 假设第 1 页是 red/yellow,第 2 页是 yellow/blue,等等,所以我想要的是当过渡发生在第 1 页和第 2 页之间时,而不是在两个渐变视图之间看到一条实线,因此:

我希望能够混合过渡并使其看起来不错。我发现 PageViewController 的委托方法很可能是我需要执行此自定义行为的地方:

- (void)pageViewController:(UIPageViewController *)pageViewController willTransitionToViewControllers:(NSArray *)pendingViewControllers {
}

- (void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed {
}

从这些方法中,我如何才能基本上删除分隔线并将其与我自己的自定义颜色混合?我会在现有视图集之上创建另一个 UIView 并为其设置动画吗?

问题在于,使用 UIPageViewController 时,您不负责视图,而且(更重要的是)您无法自定义过渡动画,因此您无法在连接处添加任何内容。

因为你只有四个视图,我建议你完全放弃 UIPageViewController,改用分页 UIScrollView。这给了你相同的行为——用户可以从 "page" 滚动到 "page"——但现在你可以完全控制 UIScrollView 内容中的所有内容,并且可以根据需要修改/覆盖。使用委托方法了解用户何时滚动以及何时完成。