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
的重点是不必手动完成。
我目前面临的场景是我在视图上使用 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
的重点是不必手动完成。