Добавям потребителски наслагвания към MKMapView и се нуждаяда изчистите съдържанието на картата, преди да добавите наслагване (т.е. когато мащабираната или нажежената карта по подразбиране трябва да бъде невидима) Нещо подобно на "canReplaceMapContent" в IOS7 и по-нови версии.
Има ли някакъв метод за извършване на това действие в IOS6?
Благодаря предварително.,
Отговори:
0 за отговор № 1Методът ви по-долу:
- (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 за отговор № 2
Можете да начертаете персонализиран непрозрачен слой върхуКартите на Apple, но все още има много малък шанс да виждате картата отдолу от време на време. Mapbox за пълен контрол.