0

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

所有网页都正确加载。但我面临一个奇怪的问题

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

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

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

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

可能是什么问题呢 ?

4

1 回答 1

1

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

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

这是我在那里找到的:

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

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

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

可用性 适用于 iOS 3.2 及更高版本。另请参阅 – locationOfTouch:inView:在 UIGestureRecognizer.h 中声明 locationOfTouch:inView:返回给定视图的本地坐标系中手势触摸的位置。

  • (CGPoint)locationOfTouch:(NSUInteger)touchIndex inView:(UIView *)view 参数 touchIndex UITouch 对象在接收者维护的私有数组中的索引。这个触摸对象代表当前手势的触摸。手势发生在其上的 UIView 对象。指定 nil 表示窗口。返回值 本地视图坐标系中的一个点,用于标识触摸的位置。如果为视图指定 nil,则该方法返回窗口基本坐标系中的触摸位置。

可用性 适用于 iOS 3.2 及更高版本。另请参阅 – locationInView:在 UIGestureRecognizer.h 中声明

于 2012-11-02T00:32:21.907 回答