2014-02-21 13 views
0

제스처 인식기에 문제가 있습니다. 내보기에는 두 개의 제스처 인식기가 있습니다. 하나는 백그라운드 수퍼 뷰에 추가되어 스 와이프하여 배경색을 변경하고, 다른 하나는 드래그 할 수있는 하위 뷰에 추가됩니다.드래그 제스처 인식기가 스 와이프 제스처 인식기를 방해 함

문제는 드래그 동작이 스 와이프를 방해한다는 것입니다. 보기를 드래그하면 어떤 경우 드래그 작업이 스 와이프로 인식되어 스 와이프 작업을 트리거합니다. 나는 이것을 원하지 않는다, 나는 단지이 드래그 작업을 마친 후 스 와이프가 인식 될 수 있기를 바란다. 이 상황은 하위 뷰를 빠르게 드래그 할 때 더 자주 발생합니다. 드래그 할 때마다 스 와이프 작업이 트리거됩니다.

답변

0

UIGestureRecognizerrequireGestureRecognizerToFail:으로 설정하고 중요한 인식자를 전달해야합니다.

UIView *subview = .... 
[self addSubview:subview]; 

[self.gestureRecognizer requireGestureRecognizerToFail:subview.gestureRecognizer]; 
+0

나는이 방법이 좋은 및 작동해야한다고 생각하지만 난 당신의 방법을 사용하고 self.gestureRecognizer 참조하는 슬쩍 제스처가 전혀 슬쩍을 인식 할 수 있음을 발견했다. – Jindulys

+0

하위보기가 화면에서 모든 제스처 이벤트를 사용하고있는 것처럼 들립니다. 하위보기 제스처 인식기에 대한 대리인을 설정하고 대리인 함수를 재정 의하여 인식자가 이벤트를 인식해야하는시기를 설정해야 할 수 있습니다. – Putz1103

+0

멋지다.이 메서드를 사용하여 뷰 컨트롤러를 스레 이스트 gestureRecognizer 대리자로 설정하고 드래그 제스처 인식기에 대한 알림을 추가합니다. 드래그가 끝나면 Flag bool을 YES로 설정 한 다음 스 와이프 동작으로 설정합니다. 인식기의 대리자 메서드는 블록을 제거 할 수 있습니다. 어떻게 생각하세요? 쿨 솔루션, 고마워요 – Jindulys

관련 문제