2010-07-31 4 views
3

iBooks와 같은 방식으로 탭을 표시/숨기기위한 좋은 방법을 찾으려고합니다. 이 작업을 위해 UITapGestureRecognizer를 설정했지만 안타깝게도 화면의 아무 버튼도 작동하지 않는다는 것을 의미합니다. 나는 내가 접촉이 통과 할 수 있도록하기 위해UITapGestureRecognizer를 사용하여 메뉴 표시/숨기기

tapRecognizer.cancelsTouchesInView = NO; 

을 사용할 수 있습니다 알고 있지만, 다음 물론, 두 가지 일이 나는 메뉴 표시/숨기기를 취소 할 수 없습니다.

특정 단추 나 동작에서 UITapGestureRecognizer가 실행되는 것을 막을 수있는 방법이 있습니까? 아니면 일반적으로 이것을하는 더 좋은 방법이 있습니까?

도움을 주시면 대단히 감사합니다.

: - 조

답변

5

조의 솔루션을 이해하는 데 약간의 코드가 필요한 경우에는 먼저 UIGestureRecognizerDelegate 프로토콜 (예 : @interface YourViewController : UIViewController <UIGestureRecognizerDelegate>)을 구현해야합니다.

UIGestureRecognizerDelegate 프로토콜을 구현하는 클래스에서 - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch을 구현해야합니다. 거기에서 touch.view가 버튼인지 확인할 수 있습니다. 구현 한 결과 return !([touch.view isKindOfClass:[UIButton class]]); 만 사용했으나 탭 인식기를 트리거하지 않으려는 다른 터치 지원 구성 요소가있는 경우이 기능을 확장해야 할 수도 있습니다.

3

나는 그것을 해결했습니다 (또는 다른 사람이 나를 위해 그것을 해결) 그래서 내가 당신과 함께 공유하고자합니다 :

돌아 NO 대리자 방법 gestureRecognizer에서 : shouldReceiveTouch : touch.view가 버튼 중 하나 인 경우 shouldReceiveTouch :

+0

해결책을 공유해 주셔서 감사합니다. 나는 똑같은 문제가 있었다. –

관련 문제