2013-04-30 2 views
2

UIView를 오버레이하여 사용자 정의 테이블 뷰를 작성하려고합니다. 나는 일반 UIView에서 특별한 제스처, 특히 두 번 탭하여 활성화 (탭 앤 홀드, 팬)하는 팬 제스처를 인식하려고합니다.UITableView 상단의 UIView에서 터치 이벤트 전달

현재 사용자 지정 UIView는 물론 사용자 지정 UITableViewController가 있습니다. 호환성 이유 (기존 UITableViewController 쉽게 교체) UIViewController 내부에있는 UITableView 대신 UITableViewController 유지하도록 노력하고 싶습니다.

두 번 탭하면 문제가 없지만 문제는 더 이상 실제로 테이블보기에서 행을 선택할 수 없다는 것입니다. 테이블 안에서 스크롤 할 수는 있지만 실제 선택은 작동하지 않습니다.

모든 탭, 스 와이프 및 일반 이벤트를 맞춤 테이블보기 셀 (예 : 특정 작업을 실행하려면 왼쪽 또는 오른쪽으로 스 와이프 할 수있는 지우기 또는 사서함)에서 유지하는 것이 이상적입니다.

테이블 뷰에서 indexPathForRowAtPoint: 테이블 뷰 셀을 가져올 수 있다는 것을 알고 있지만 토글 만 선택할 수 있습니다.

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ 
    [self.nextResponder touchesBegan: touches withEvent: event]; 
} 

뿐만 아니라 다른 관련 이벤트를하고 nextResponder 사용자 지정있는 UITableViewController,하지만 아무것도 할 수 없었던 것으로 확인되었습니다 :

나는 또한 접촉을 무시하려고했습니다는 다음과 같이 시작했다.

다른 게시물을 확인했지만 해결 방법이 없습니다. 내가 시도 몇 가지 다른 사항은 다음과 같습니다

  • 는 단일 탭 제스처 인식기를 추가하고있는 UITableViewController에 전달하기

    [_containingTableViewController gestureRecognizerShouldBegin: tapGesture]; 
    
  • 구현 된 다른 제스처 인식기 대표

    -(BOOL) gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch: (UITouch *)touch{ 
        return (touch.tapCount >= 2); 
    } 
    

    뿐만 아니라 모두 예 및 아니오 :

    -(BOOL) gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer 
    

또한 테이블보기에서 canCancelContentTouches 설정을 시도했지만 어느 값도 작동하지 않습니다.

어떤 도움을 주시면 감사하겠습니다. 꽤 많은 노력을했지만 막상 얻지는 못했습니다!

실제로 GitHub에 전체 프로젝트를 게시 할 수 있지만 먼저 작업을 정리해야합니다.

감사합니다.

답변

0

나는 당신의 문제를 이해하지 못했다, 그래서이 할 수있는 당신을 도와줍니다 있는지 확실하지 않습니다,하지만 당신은 그것의 이벤트의 모든 유형을 비활성화 UIView, UITableView 등의 FALSE/NO에 방법 setUserInteractionEnabled *를 사용할 수 있습니다.

관련 문제