2011-09-06 3 views
6

Je veux masquer ou montrer un emplacement UIButton météo visible sur la carte. En testant le code xcode, je peux voir le message "User location view is NOT visible but should be. Showing...." sur la console dans la méthode "didUpdateLocation" si l'emplacement des utilisateurs n'est pas visible sur la carte. Comment puis-je utiliser ce message pour générer des événements dans mon cas pour masquer ou afficher un UIButton? Merci pour toute aide à l'avance.Vérifiez si la localisation de l'utilisateur est visible sur la carte iphone

Répondre

11

Si vous voulez savoir si l'emplacement de l'utilisateur se trouve dans la région de la carte affichée, vous pouvez vérifier la propriété userLocationVisible dans la méthode déléguée regionDidChangeAnimated:

- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated 
{ 
    someButton.hidden = !mapView.userLocationVisible; 
} 

Si vous Je veux juste savoir si l'emplacement de l'utilisateur dispose actuellement d'une valeur (que ce soit visible ou non et si showsUserLocation est ou non), puis:

if (mapView.userLocation.location == nil) 
    NSLog(@"user location not obtained yet"); 
else 
    NSLog(@"user location available (may or may not be currently visible)"): 
+0

Merci beaucoup. Cela a fonctionné parfaitement .... !! @Ron merci pour votre réponse. – alekhine

1

Si l'emplacement de l'utilisateur n'est pas visible, vous n'obtenez pas lat, long. mettre la condition si lat, long == 0. puis masquer ou afficher. il fonctionne uniquement sur les périphériques (gps)

4

Il existe une propriété appelée userLocationVisible.

Dans Apple Documents

une valeur booléenne indiquant si l'emplacement actuel du dispositif est visible dans la vue en plan. (Lecture seule)

+0

Thnaks. Votre réponse a aidé. – alekhine

Questions connexes