我目前正面临一种情况,即我在视图&上使用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提供的代码,删除了错误,但问题仍然存在,我无法触发该滑动事件。
答案 0 :(得分:5)
您必须按UIPageViewController
的视图进行操作:
[self.pageViewController.view addGestureRecognizer:rightRecognizer];
编辑以响应您的修改:
如果您尚未实施任何UIGestureRecognizerDelegate
方法以允许UIPageViewController
的滑动手势并且您的滑动手势被识别,则滑动手势无法运行同时。现在,您的滑动基本上被页面控制器的手势阻止。您可以通过实施UIGestureRecognizerDelegate
,设置rightRecognizer.delegate = self;
并覆盖gestureRecognizer: shouldRecognizeSimultaneouslyWithGestureRecognizer:otherGestureRecognizer
来更改它,以便在触发两个手势识别器的情况下返回true。
但是如果您希望页面翻转并且在翻页时识别您的手势,则无需添加额外的滑动手势,因为您只需在翻页时触发您的方法;例如在pageViewController:didFinishAnimating:previousViewControllers: transitionCompleted:
。
答案 1 :(得分:0)
您不必添加手势识别器,如果您正确实施协议,它应该是开箱即用的。
UIPageViewController
的要点是不必手动完成。