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

时间:2015-05-15 23:03:15

标签: ios objective-c gradient uipageviewcontroller

我有一个4页的UIPageViewController,从这里取样:http://www.appcoda.com/uipageviewcontroller-storyboard-tutorial/并删除设置图像并为每个视图添加自定义渐变。 让我们说第1页是红色/黄色,第2页是黄色/蓝色等,所以我想要的是在第1页和第2页之间发生转换时,而不是在两个渐变视图之间看到一条实线,如下: / p>

Bad behavior screenshot

我希望能够融合过渡并让它看起来很漂亮。我发现PageViewController的委托方法可能是执行此自定义行为所需的位置:

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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