簡體   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