iOS:在UIPageViewController

时间:2015-06-20 13:50:54

标签: ios objective-c uipageviewcontroller uiswipegesturerecognizer

我目前正面临一种情况,即我在视图&上使用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提供的代码,删除了错误,但问题仍然存在,我无法触发该滑动事件。

2 个答案:

答案 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的要点是不必手动完成。