2012-04-08 5 views
0

내 현재 위치 핀과의 사용자 상호 작용을 차단하려면 어떻게해야하나요? 나는 이런 문제가있다 : 나는 내지도에 많은 핀을 가지고있다. 그리고 그것들이 가깝고 "현재 위치"핀 주위에 있다면, 그 핀은 그것을 막기 위해 나는 클릭 이벤트를 취한다. 버블 "현재 위치"가 표시되는 것을 원하지 않습니다. * pinView.canShowCallout = NO 인 것으로 알고 있습니다. 핀이 내 위치인지 어떻게 알 수 있습니까 ?? 감사목표 C지도상의 현재 위치와 사용자의 상호 작용을 차단하는 방법

답변

0

이 당신이 필요로하는 무엇을 제공해야합니다 ..

-(void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view{ 

if ([annotation isKindOfClass:[MKUserLocation class]]) { 
    view.canShowCallout=NO; 
    } 
} 

작동하는지 알려주세요 .. :)

0

당신이 적어도 하나를 선택해야하기 때문에이 작동하지 않습니다 그것을 밖으로 작동하지만 덕분에 어쨌든 검색의 시작점 매우 도움합니다 :) 이 코드로했다 : 당신이보기와 t을 찾아야합니다

- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views 
{ 
    for(int i = 0; i< [views count]; i++) 
    { 
     if([[[[views objectAtIndex:i] class] description] isEqualToString:@"MKUserLocationView"]) 
     { 
      ((MKAnnotationView*)[views objectAtIndex:i]).canShowCallout = NO; 
     } 
    } 
} 

자락에 그것을 적용하십시오.

또한이를 넣어 필요에

if ([annotation isKindOfClass:[MKUserLocation class]]) { 
     [mapView viewForAnnotation:annotation].canShowCallout = NO; 
     return [mapView viewForAnnotation:annotation]; 

    } 

: - (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation

나는지도보기로 제한하려고 할
+0

: 나는 for 루프가 불필요 확신으로 viewForAnnotation 방법. viewForAnnotation에서 –

+0

을 사용하면 nil을 반환해야하므로 실제로이 작업을 수행 할 객체가 없습니다. –

관련 문제