Ios UIPageViewController滑动和轻触之间的不同行为

Ios UIPageViewController滑动和轻触之间的不同行为,ios,Ios,我在项目中遇到UIPageViewController的奇怪行为。 我实现了ViewControllerBeforReviewController和viewControllerAfterViewController方法,当我在PageViewController中滑动手指时,它们工作正常。 我还希望当用户点击PageViewController的左右区域时,页面能够翻转,就像在iBook上一样 当用户点击其中一个角时,将调用正确的方法viewControllerAfterViewControll

我在项目中遇到UIPageViewController的奇怪行为。 我实现了ViewControllerBeforReviewController和viewControllerAfterViewController方法,当我在PageViewController中滑动手指时,它们工作正常。 我还希望当用户点击PageViewController的左右区域时,页面能够翻转,就像在iBook上一样

当用户点击其中一个角时,将调用正确的方法viewControllerAfterViewController或ViewControllerBeforReviewController,我将返回一个有效的UIViewController,就像用户在页面之间滑动时一样。 不幸的是,点击手势后,页面没有打开,并且没有调用didFinishAnimating方法。如果在轻触之后,我执行了一个滑动手势,页面将通过卷曲动画翻转,但只调用didFinishAnimating委托方法

很奇怪,不是吗?看起来UIPageViewController已经加载了viewcontroller,但在执行滑动手势之前不会启动动画

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

检测手势对我来说不是问题,因为我已经在我的项目中做了,但我想了解为什么UIPageViewController的行为如此奇怪


谢谢大家!

这可能是一个相关的问题,但它非常相似,因此可能值得在这里提及。有时,在设置UIPageViewController时,您会发现轻触和滑动的上一页的反向手势都可以工作,但下一页的正向手势可以工作,但轻触不起作用

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

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

我找到了解决办法。我实现了GestureRecognitzerShouldBegin,我将我的viewcontroller设置为我的PageViewController的TapGestureRecognitzer的代理,并始终返回YES。现在,我可以使用点击和滑动来浏览页面。让它成为投票的答案!谢谢你,伙计!在你的问题中添加标签,什么版本会有帮助。