【发布时间】:2014-09-22 21:01:22
【问题描述】:
我正在使用 UIPageViewController 浏览一系列视图控制器。我希望父视图控制器的背景在滑动时根据视图之间的滚动位置在颜色之间平滑过渡。我希望 UIPageViewController 会有一个类似于 scrollViewDidScroll 的委托方法,但它似乎没有。
是否有替代方法或类似方法可以在滑动发生/更改时显示其位置?
编辑: 由于滚动视图似乎没有暴露,我想出了一个烫发/临时解决方案。在页面之间转换时,我将父背景颜色转换为 1 秒的动画。这不会直接与滑动相关联,也不允许半滑动等。但是对于常规的左右滑动,它可以实现所需的平滑效果,而不是即时颜色变化。
// code that occurs when a pageControl swipe occurs.
UIColor *destinationColor = [UIColor redColor]; // the desired end color
[UIView animateWithDuration:1.0
delay:0
options:UIViewAnimationOptionAllowUserInteraction
animations:^{
self.pageViewController.view.backgroundColor = destinationColor;
}
completion:nil
];
【问题讨论】:
-
您的最低部署目标是什么? iOS 7 及更高版本?
-
ios7 最低。我们不支持 ios6。
-
不幸的是,当您使用滚动转换时,您无法访问添加到页面视图控制器的子视图中的滚动视图(Apple 尚未公开)。如果需要该功能,您必须创建自己的页面视图控制器版本。
标签: ios uiscrollview uipageviewcontroller