2014-12-18 2 views
0

지형지 물을 편집 할 때 사용자가 입력하는 모드가있는 앱이 있습니다. 이 편집 모드에서는 뷰 컨트롤러의 프레임에서 삽입 된 테이블 뷰가 포함 된 뷰 컨트롤러를 제공합니다. 이 뷰 컨트롤러의 배경색은 알파 0.5이므로 기본 뷰는 여전히 내부 테이블 뷰 외부에서 부분적으로 볼 수 있지만 반투명 뷰 컨트롤러로는 회색으로 표시됩니다. 기본 뷰 컨트롤러에는 편집 모드가 아닐 때 뷰를 오른쪽으로 슬라이드시키는 데 사용되는 버튼이 있습니다.다른 UIViewController가있는 동안 스 와이프 제스처를 방지합니다.

편집보기 컨트롤러가 활성화되어있는 동안 슬라이더를 활성화하려면이 단추가 비활성화됩니다. 이는 바람직한 동작입니다. 그러나 사용자는보기를 오른쪽으로 스 와이프하여 버튼과 동일한 것을 얻을 수 있습니다. 편집보기 컨트롤러가있는 동안이 스 와이프 기능을 비활성화하고 싶습니다.

제 질문은 다음과 같습니다. 특정보기 컨트롤러가있을 때 어떻게 스 와이프 제스처를 비활성화 할 수 있습니까?

답변

1

gestureRecognizerShouldBegin: 대리자 메서드를 사용할 수 있습니다.

- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer { 

    if (gestureRecognizer == theGesture && theView.window != nil) { 
     return NO; 
    } else { 
     return YES; 
    } 
} 
: 검출 동작이 특히 와이프 제스처 (즉 theGesture) 및 그 특정 뷰 컨트롤러가 있는지 경우 (즉 theView) 제스처 말해, 예를 시작하지
관련 문제