Taper sur le cercle bleu pulsant représentant l'location user fait apparaître une légende "Emplacement actuel". Y a-t-il un moyen de supprimer cela?
Il y a une propriété sur la vue d'annotation que vous pouvez changer, une fois que l'location de l'user a été mis à jour:
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation { MKAnnotationView *userLocationView = [mapView viewForAnnotation:userLocation]; userLocationView.canShowCallout = NO; }
Vous pouvez définir le title
sur blanc pour supprimer la légende:
mapView.userLocation.title = @"";
Modifier:
Une méthode plus fiable pourrait être de didUpdateUserLocation
le titre dans la méthode de délégué didUpdateUserLocation
:
-(void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation { userLocation.title = @""; }
ou dans viewForAnnotation
:
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>) annotation { if ([annotation isKindOfClass:[MKUserLocation class]]) { ((MKUserLocation *)annotation).title = @""; return nil; } ... }
La définition du titre dans les methods déléguées vous permet de vous assurer que vous disposez d'une véritable instance userLocation avec laquelle travailler.