0

UIPanGestureRecognizer를 내 View Controller의 하나의 사용자 정의보기에 추가하고 있습니다.UIPanGestureRecognizer 충돌

프레임 워크에서 Main NavigationViewController.view에 UIPanGestureRecognizer를 추가하는 슬라이딩 메뉴에도 MFSideMenu를 사용하고 있습니다.

때로는 사용자 정의보기에서 패닝 할 때 실제로 팬은 MavigationViewController.view에서 발생합니다. 온 패닝 때 NO를 반환해야합니다 (5-10 중 1) 때때로 Apperantely

- (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; 
    } 

} 

,이 방법은, YES 반환이 문제의 원인을

은의 MFSideMenu 구현에 다음 코드 스스로보기!

사용자 지정보기를 패닝하는 대신 슬라이딩 메뉴가 열리는 문제가 있습니다.

저는 거의 상상할 수있는 모든 것을 시도했습니다.이 동작은 단순히 의미가 없습니다.

업데이트 : iOS 7에서만 문제가 발생합니다. 아래에서 수정 사항에 대한 답변을 참조하십시오.

+0

에 나는 따라서 루트 뷰 클래스에 gestureRecognizer을 유발하고, 사용자 정의보기가 르트 뷰에 추가되고 있음을 추측하고있어. 루트 뷰의 rootViewControllerPanEnable 변수를 사용자 지정 클래스의 델리게이트 제스처 메서드 처리기 (타이밍이 작동하는 경우)에서 "아니요"로 설정할 수 있는지 확인하려고합니다. – GuybrushThreepwood

답변

1

해결책을 찾았습니다; 이건 내 임의의 문제를 해결하고있다

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

: 분명히 문제는 단순히 뷰 컨트롤러에 UIGestureRecognizerDelegate을 구현하고, 구현, 그것을 해결하기 위해

아이폰 OS 7

입니다!

크레딧 UIPanGestureRecognizer sometimes not working on iOS 7

관련 문제