iOS: UIPageViewController 中的右滑手势没有响应

iOS: right swipe gesture not responding in UIPageViewController

我目前面临的场景是我在视图上使用 UIPageViewController 并且我希望当用户从索引值 0 向右滑动时右滑动手势起作用,所以我尝试通过以下代码向 UIPageViewController 添加右滑手势:

UISwipeGestureRecognizer *rightRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(rightSwipeHandle:)];
rightRecognizer.direction = UISwipeGestureRecognizerDirectionRight;
[rightRecognizer setNumberOfTouchesRequired:1];
//Edit 1
[self.pageViewController.view addGestureRecognizer:rightRecognizer];

但是,当我向 pageviewcontroller 添加手势时,我收到以下错误消息(由@Lyndsey Scott 回答解决)

no visible interface uipageviewcontroller declares the selector addgesturerecognizer

任何人都可以指导我如何在此 pageViewController

中实现向右滑动

编辑1:替换了@Lyndsey Scott提供的代码,删除了错误,但问题仍然存在,我无法触发滑动事件。

您必须对 UIPageViewController 的视图做出手势:

[self.pageViewController.view addGestureRecognizer:rightRecognizer];

根据您的编辑进行编辑:

如果您没有实现任何 UIGestureRecognizerDelegate 方法以允许同时识别 UIPageViewController 的滑动手势和您的滑动手势,滑动手势将不起作用。现在,您的滑动基本上被页面控制器的手势阻止了。您可以通过实施 UIGestureRecognizerDelegate、设置 rightRecognizer.delegate = self; 和覆盖 gestureRecognizer: shouldRecognizeSimultaneouslyWithGestureRecognizer:otherGestureRecognizer 来更改它,以便在触发两个手势识别器的情况下 returns 为真。

但是如果你希望翻页并且在翻页时识别你的手势,那么添加额外的滑动手势是不必要的,因为你可以简单地在翻页时触发你的方法;例如 pageViewController:didFinishAnimating:previousViewControllers: transitionCompleted:.

您不必添加手势识别器,如果您正确实施协议,它应该开箱即用。

UIPageViewController 的重点是不必手动完成。