我使用UIPageViewController在三个视图之间进行平移。 当我从第二个视图平移到第三个视图时,我想模糊第三个视图的背景(反之亦然)。 因此,我在第二个视图中附加了一个额外的UIPanGestureRecognizer。 此UIPanGestureRecognizer动画显示图像视图的alpha属性,一旦第二个视图的右边框通过屏幕中间,该图像视图就包含背景图像的模糊表示,范围从0.0到1.0。当我从第三个视图平移到第二个视图时,第三个视图的另一个UIPanGestureRecognizer反之亦然。
不幸的是,这种行为是静态的。 UIPageViewController的平移是交互式的。 当我想从第二个视图平移到第三个视图并且第二个视图的右边界通过屏幕中间时,在我平移时,毛刺图像视图变得可见。但是当我平移时,我可以改变主意并取消转换,当我回到原来的位置时。虽然第二个(而不是第三个)视图在屏幕上,但模糊的视图仍然可见。
当我以非常快的速度飞行太短距离时会发生类似的问题。 UIPageViewController将移动到第三个视图,但模糊的图像视图保持不可见。
有没有办法将视图的转换与burred图像视图的visiblity / invisibility同步?
UIPageViewController委托协议有两个有趣的方法: pageViewController:willTransitionToViewControllers: pageViewController:didFinishAnimating:previousViewControllers:transitionCompleted:
不幸的是,这两种方法都不能用于我的目的。
iOS 7 SDK的UIViewControllerAnimatedTransitioning功能似乎也无法与UIPageViewController一起使用。
有人有想法吗?
答案 0 :(得分:0)
听起来像iOS7功能UIViewControllerInteractiveTransitioning
(其中还包含相关的非交互式动画过渡)确实是您所需要的。您可以考虑使用其他可以使用此方法的机制替换您的UIPageViewController,例如UINavigationController。