2014-11-05 3 views
0

MKMapView에 맞춤 오버레이를 추가하고 오버레이를 추가하기 전에지도 콘텐츠를 지워야합니다 (예 : 확대/축소 된 기본지도가 보이지 않아야 함) IOS7 이상에서는 'canReplaceMapContent'와 비슷한 점이 있습니다.IOS6의 MKMapView 오버레이

IOS6에서이 작업을 수행 할 수있는 방법이 있습니까? . 사전

감사합니다, 아래

답변

0

당신의 방법

- (void) removeMapOverlay { 
    [self.mapView removeOverlays:[self.mapView overlays]]; 

    NSMutableArray *tempArray = [NSMutableArray arrayWithArray:[self.mapView annotations]]; 
    if ([tempArray containsObject:[MKUserLocation class]]) { 
     [tempArray removeObject:[MKUserLocation class]]; 
    } 

    NSArray *annotationArray = [NSArray arrayWithArray:tempArray]; 
    tempArray = nil; 
    [self.mapView removeAnnotations:annotationArray]; 
} 

편집 :

당신은지도/축소 또는 팬을 끼. 지도가로드되고 있는지 확인하는 데 사용할 수있는 두 가지 대리자 메서드가 있습니다.

- (void)mapViewWillStartLoadingMap:(MKMapView *)mapView { 
    NSLog(@"loading..."); 
} 

- (void)mapViewDidFinishLoadingMap:(MKMapView *)mapView { 
    NSLog(@"Map loaded..."); 
} 

위의 두 가지 방법을 사용하는 것이 좋습니다. bool 변수를 만들거나 확대/축소 할 때 주석을로드하지 않는 것을 의미합니다. 내가 그것을 할 수있는 다른 간단한 방법이 있다면 어떻게 업데이 트를 유지할 것입니다.

+0

응답 해 주셔서 감사합니다.하지만 mkmapview에 추가 된 모든 사용자 정의 오버레이를 제거하지만 mkmapview에서지도를 삭제하지 않습니다. –

+0

MkMapView에서지도를 제거하려면 사용자 정의 오버레이를 어디에 표시합니까? IOS7의 – Kampai

+0

에서이 플래그 (canReplaceMapContent)를 사용하면 오버레이를 추가하기 전이나 확대/축소하거나 패닝 할 때 맵을 볼 수 없습니다. 나는 이것을 IOS6에서 얻으려고했지만 그럴 수 없었다. –

0

사용자 정의 불투명 한 오버레이를 Apple의지도 위에 그릴 수 있지만 때때로지도가 아래에 표시 될 가능성은 여전히 ​​있습니다. 완전한 제어를 위해 Mapbox과 같이 제어 할 수있는 대체, 오픈 소스 툴셋을 권하고 싶습니다.