You can set title to empty to suppress a leader:
mapView.userLocation.title = @"";
Edit:
A more reliable way would be to remove the header in the didUpdateUserLocation delegate didUpdateUserLocation :
-(void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation { userLocation.title = @""; }
or in viewForAnnotation :
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>) annotation { if ([annotation isKindOfClass:[MKUserLocation class]]) { ((MKUserLocation *)annotation).title = @""; return nil; } ... }
Setting the header in the delegate methods allows you to make sure that you have a real instance of userLocation to work with.
source share