繁体   English   中英

UIPanGestureRecognizer冲突

[英]UIPanGestureRecognizer conflicts

我正在将UIPanGestureRecognizer添加到我的视图控制器中的一个自定义视图。

我还将MFSideMenu用于滑动菜单,该菜单在其框架中向主NavigationViewController.view添加了UIPanGestureRecognizer。

有时,当我在自定义视图中平移时,平移实际上发生在MavigationViewController.view中。

导致此问题的原因是MFSideMenu实现中的以下代码:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {

  if([gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) {

     if([gestureRecognizer.view isEqual:self.rootViewController.view] &&
       [self rootViewControllerPanEnabled])
      {
        return YES;
      }

   return NO;
  }

}

有时(在5-10中,有1个)是适当的,此方法返回YES,在平移视图本身时应返回NO!

问题是打开了滑动菜单,而不是平移自定义视图。

我已经尽了我所能想象的一切-这种行为根本没有任何意义。

更新:仅在iOS 7中存在问题-请在下面的答案中查看该修复程序。

找到了解决方案; 显然问题出在iOS 7中。

要修复它,只需在视图控制器中实现UIGestureRecognizerDelegate并实现:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldBeRequiredToFailByGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    return YES;
}

这解决了我的随机问题!

贷记到UIPanGestureRecognizer有时在iOS 7上不起作用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM