UIPageViewController无法正常工作

时间:2012-10-26 06:50:32

标签: iphone ios cocoa-touch uigesturerecognizer uipageviewcontroller

我正在使用UIPageViewController在webview中加载10个网页。

所有网页都是正确加载的。但我在

面临一个奇怪的问题
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController

现在我在第一页。所以没有可能回到

- (UIViewController *)pageViewController:(UIPageViewController *) pageViewController viewControllerBeforeViewController:(UIViewController *)viewController

加载第一页后,我只是使用WebView上下滚动。突然,viewControllerAfterViewController方法被调用。奇怪的是,它没有被移动到下一个视图,即(第二页)没有加载。

可能是什么问题?

1 个答案:

答案 0 :(得分:1)

我不确定,但我认为问题出在手势识别器或CGRects的位置。基本上,页面视图控制器监听触摸移动。因此,如果用户滑动滚动(在webView上)页面视图尝试执行翻页。 (我猜)我认为解决方案是确保页面视图触摸位置(CGRect)不与Web视图重叠。显然你可以设置触摸UIPageViewController的位置(区域)来翻页。

您可以从iOS参考库中查找“UIGestureRecognizer类参考”开始。我希望这有帮助

这是我在那里找到的:

locationInView: 返回计算为接收器表示的手势的给定视图中的位置的点。

  • (CGPoint)locationInView:(UIView *)视图 参数 视图 发生手势的UIView对象。指定nil以指示窗口。 回报价值 局部坐标系视图中的一个点,用于标识手势的位置。如果为视图指定了nil,则该方法将在窗口的基本坐标系中返回手势位置。

讨论 返回值是UIKit框架计算的手势的通用单点位置。它通常是手势中涉及的触摸的质心。对于UISwipeGestureRecognizer和UITapGestureRecognizer类的对象,此方法返回的位置对手势具有特殊意义。这些重要性记录在这些类的参考文献中。

状况 适用于iOS 3.2及更高版本。 也可以看看 - locationOfTouch:inView: 宣告进入 UIGestureRecognizer.h locationOfTouch:inView: 返回给定视图的局部坐标系中手势触摸之一的位置。

  • (CGPoint)locationOfTouch:(NSUInteger)touchIndex inView:(UIView *)视图 参数 touchIndex 接收方维护的专用数组中UITouch对象的索引。该触摸对象表示当前手势的触摸。 视图 发生手势的UIView对象。指定nil以指示窗口。 回报价值 局部坐标系视图中的一个点,用于标识触摸的位置。如果为视图指定了nil,则该方法返回窗口基本坐标系中的触摸位置。

状况 适用于iOS 3.2及更高版本。 也可以看看 - locationInView: 宣告进入 UIGestureRecognizer.h