【问题标题】:How to blend CGGradients together in PageViewController?如何在 PageViewController 中将 CGGradients 混合在一起?
【发布时间】:2015-05-15 23:03:15
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: ios objective-c gradient uipageviewcontroller


    【解决方案1】:

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

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

    【讨论】:

    • 有了UIScrollView,我的问题是如何实现页面控制器的页面粘性?那会是你刚才提到的委托方法吗?
    • 此行为是内置的。UIPageViewController(滚动样式)分页滚动视图。看我的书:apeth.com/iOSBook/ch20.html#_paging
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多