控制器不同组件中的多个滑动识别器 ios

Multiple swipe recognizer in different components of controller ios

我有一个 UIViewController,默认滑动识别器 open/close 我的应用程序的右侧菜单(我正在使用 ECSlidingViewController 插件)。此滑动识别器设置为控制器的父视图。

以下是检测滑动以打开右侧菜单的部分代码:

-(void)viewDidAppear:(BOOL)animated {
      [super viewDidAppear:animated];
      [self.view addGestureRecognizer:self.slidingViewController.panGesture];}

在这个 UIViewController 中,我有一个 UIImageView,我需要检测向所有方向(右、左、上、下)的滑动。到目前为止,我已将 Storyboard 上的所有滑动设置为 UIImageView,但该应用程序仅检测到一个组件的滑动(父视图中打开右侧菜单的那个或UIImageView), 不是两者。

如何检测两个组件上的滑动?

发生这种情况的原因是因为您在图像视图上的手势识别器是在 initWithCoder 期间添加的,而您的另一个是在 viewDidLoad 期间添加的,发生在 initWithCoder 之后。

如果您希望两者都发生,则需要实施 gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:,否则 iOS 会变得贪婪,如果有多个手势识别器,则采用最新添加的手势识别器相同的手势(如您现在所见)。