2010-09-02 5 views
0

Activation du « point bleu » qui montre l'emplacement actuel dans ma demande pariPhone: Comment réactiver MKUserLocation 'point bleu'?

mapView.showsUserLocation = YES 

Désactivation/cacher le point par

mapView.showsUserLocation = NO 

afin de déposer une épingle. Jusqu'ici tout va bien. Ajout d'une épingle d'annotation à 'userLocation' et en la faisant glisser dans la carte vers un nouvel emplacement. Après cela, je veux à nouveau montrer le point bleu en réglant à nouveau la valeur de showsUserLocation sur YES - mais cela n'apparaît tout simplement pas! Quel pourrait être le problème? Y at-il un moyen de forcer à afficher à nouveau (reset userLocation?) Avec une autre méthode? Quels événements sont impliqués?

Grateful pour toute aide sur celui-ci ..

Répondre

3

vérifier si vous personnalisez votre annotationView avec essayer la méthode - (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation :

if (annotation==_mapView.userLocation) { 
    return nil; 
} 
else { 
    //... 
    //costumizing pins for other annotations on mapview 

    //return customized annotationview 
} 
+0

Je ne sais pas pourquoi le code ci-dessus a fonctionné pour moi. Mais le code de Will Johnson fait l'affaire. –

+0

Il ne fonctionne pas lorsque j'éteins puis j'active le service de localisation. –

3

Essayez ceci:

if ([annotation isKindOfClass:[MKUserLocation class]]) return nil; 

Utilisation de la classe plutôt que l'annotation == _ mapView.userLocation signifie que vous arrêtez d'utiliser _mapView.userLocation ou autre chose, cette ligne ne se casse pas.

Questions connexes