2011-09-06 15 views
6

Quiero ocultar o mostrar que la ubicación actual de un usuario de UIButton está visible en el mapa. Al probar el código xcode, puedo ver la medida "User location view is NOT visible but should be. Showing...." en la consola en el método "didUpdateLocation" si la ubicación de los usuarios no está visible en el mapa. ¿Cómo puedo usar este mensaje para generar eventos en mi caso para ocultar o mostrar un UIButton? Gracias por cualquier ayuda con anticipación.Compruebe si la ubicación del usuario está visible en el mapa iphone

Respuesta

11

Si desea saber si la ubicación del usuario está contenida en la región del mapa que se muestra actualmente, se puede comprobar la propiedad userLocationVisible en el método regionDidChangeAnimated delegado:

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

Si solo quiere saber si la ubicación del usuario tiene actualmente un valor (ya sea que esté visible o no y si showsUserLocation está activado o no), entonces:

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

Muchas gracias. Funcionó perfectamente ... !! @Ron gracias por tu respuesta. – alekhine

1

si la ubicación del usuario no está visible no se obtiene latitud actual, larga. pon la condición si lat, long == 0. then button hide or show. funciona en el único dispositivo (gps)

4

Existe una propiedad llamada userLocationVisible.

en Apple Docs

Un valor booleano que indica si la ubicación actual del dispositivo es visible en la vista del mapa. (Sólo lectura)

+0

Thnaks. tu respuesta ayudó. – alekhine

Cuestiones relacionadas