2012-09-22 2 views
2

내지도에 대한 사용자 정의 콜 아웃 뷰가 있습니다. 내부에 테이블 뷰가 있습니다. IOS 6까지 모든 것이 잘 작동하고 행을 선택하면 콜 아웃 내부에 새로운보기가 표시되었지만 현재 IOS 6에서는 더 이상 작동하지 않습니다. tableview가 표시되지만 테이블을 스크롤하는 행을 선택할 수는 없습니다. 어떤 아이디어가이 문제를 해결하는 방법?TableView로 IOS 6 콜 아웃 뷰가 더 이상 작동하지 않습니다

thx 4 도움!

+0

내가 작동 액세서리 추가하는 경우 - 그러나 단지 셀이 선택되지 않습니다 buttonTap에 대한합니다. 다른 터치가 작동하고 선택 만 문제입니다. 무엇이 문제인지 모릅니다. 비슷한 기능을 가진 다른 앱들도 이런 문제가 있다고 생각합니다! – kev52

답변

0

이 문제가 해결되었습니다. 당신이 위임 추가합니다 MapviewController.h 파일에서 - CalloutView에서 아무것도 클릭,지도 tabbleview

1이 사용자 touch.My의 calloutview입니다받지 않습니다 : UIGestureRecognizerDelegate

2 - 및 파일 MapViewController.m에 메소드를 구현 - (BOOL) 제스처 인식기 : (UIGestureRecognizer *) 제스처 인식기 shouldReceiveTouch : (UITouch *) touch

- 내지도보기를 한 번 클릭하면이 방법이 3 번 실행됩니다. 그래서 나는 터치가 행동을 제한합니다. 첫 번째 터치는 행동을 취할 것입니다. - myCalloutView에 tabbleView가 있습니다. tabbleView가 터치를 받으면 Map에 대해 false touch를 반환합니다. Tabbleview가 touch 할 수있게합니다.

참고 : NSlog 히트 테스트 View에는 뷰의 이름이 있습니다. 원하는 항목을 터치합니다. 예를 내보기 : isEqualToString : @ "UITableViewCellContentView"]

static int count=0; 
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{ 
     NSLog(@"hit test view %@",[touch view]);  
     if(count >0 && count<=2) 
     { 
      count++; 
      count=count%2; 
      return FALSE; 
     } 
     count++;  
     if ([[[[touch view] class] description] isEqualToString:@"UITableViewCellContentView"]) { 
      return FALSE; 
     } 
     return TRUE; 
    }