UIPageViewController在滑动和点按之间有不同的行为

时间:2012-02-07 10:29:35

标签: ios

我在项目中遇到UIPageViewController的奇怪行为。 我实现了viewControllerBeforeViewControllerviewControllerAfterViewController方法,当我在PageViewController中滑动手指时,它们工作正常。 当用户点击PageViewController的左右区域时,我也想要翻页,就像在iBook上一样。

当用户点击其中一个角时,会调用正确的方法(viewControllerAfterViewControllerviewControllerBeforeViewController),并且当用户在用户之间滑动时返回有效的UIViewController页面。 不幸的是,在点击手势后,页面未被转动,并且未调用didFinishAnimating方法。如果在点击后,我执行滑动手势,页面将使用curl动画,但仅调用didFinishAnimating委托方法。

很奇怪,不是吗?似乎UIPageViewController已加载了视图控制器,但在我执行滑动手势之前不会启动动画。

我的问题的一个可能的解决方案是检测滑动和点击手势,在委托方法中不执行任何操作并通过setViewControllers:direction:animated:completion翻页。

由于我已经在我的项目中执行此操作,因此检测手势不是问题,但我想了解为什么UIPageViewController以如此奇怪的方式表现

谢谢!

1 个答案:

答案 0 :(得分:0)

这可能是一个相关问题,但它非常相似,所以这里值得一提。有时在设置UIPageViewController时,您会发现点击和滑动的反向手势(上一页)都有效,但是使用前向手势(下一页),滑动有效,但无法点击。

这通常是因为未正确设置UIVageViewController嵌套的UIViewController的根UIView的边界。您需要记住明确设置这些边界,通常是设备的边界。例如在iPad上:

self.view = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 768.0, 1024.0)] ;