2013-03-16 2 views
0

MKOverlay 또는 MKPolyline보기에서 터치 이벤트를 감지하려면 어떻게해야합니까? this을 시도하고 MKPolylineView에 tapgesture를 추가했지만 성공하지 못했습니다.MKOverlay에서 터치 감지

- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay 
     MKPolyline *mapPoly = (MKPolyline *)overlay; 

       MKPolylineView *_ucPolyView = [[MKPolylineView alloc] initWithPolyline:mapPoly]; 

       _ucPolyView.strokeColor = [UIColor redColor]; 

    [_ucPolyView setUserInteractionEnabled:YES]; 
     UITapGestureRecognizer *polylineTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(polylineTapped:)]; 
      polylineTap.numberOfTapsRequired = 1; 
      [_ucPolyView addGestureRecognizer:polylineTap]; 

} 


-(void)polylineTapped:(UITapGestureRecognizer *)tapGesture 
{ 
    NSLog(@"Polyline is %@",tapGesture.view); 
} 

하지만 polylineTapped 메소드가 실행되지 않습니다. 필자가 원하는 것은 사용자가 해당 폴리 라인을 누를 때마다 폴리 라인의 세부 정보를 보여주는 팝업보기를 표시하는 것입니다.

답변

0

동일한 문제가있어서 MKMapView가 MKOverlayView와 같은 자식 뷰에 전파 된 모든 이벤트를 처리한다는 결론에 도달했습니다. 나는 MKMapView가 꼬집음과 확대/축소 등을하기 위해 터치 이벤트를 완벽하게 제어 할 필요가 있다고 가정합니다.

0

히트가 범위를 벗어난 경우에도 hitTest 뷰를 수정하여 자식을 검사해야합니다.