Pregunta

Oye, ten una pregunta aquí. Estoy tratando de hacer.

if (Map.showsUserLocation == YES) 
        {
            Map.showsUserLocation = NO;
        }

Esto es bastante simple. Cuando la aplicación acaba de comenzar showsUserLocation está configurado en sí, pero el dispositivo lleva tiempo encontrar la ubicación. Entonces, si el usuario hace clic showsUserLocation = NO antes de que se haya encontrado la ubicación (antes de que aparezca el punto azul). Exc_bad_access.

En Google Map, tiene el código de protección, antes de que aparezca el mapa de Google, obtenga el punto azul, le deshabilitará presionar el showsUserLocation Botón mostrando el Indicador Activity. ¿Alguna idea de cómo hacer esto? Gracias por adelantado.

¿Fue útil?

Solución

MKMapViewDelegate tiene un método:

- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation

Puede habilitar el botón aquí, hasta entonces mantenerlo deshabilitado.

Otros consejos

Puedes hacerlo de manera bastante cómoda. Deshabilite su botón 'CurrentLocation' hasta que MapView obtenga la ubicación actual del usuario, luego el botón 'CurrentLocation' cuando obtenga la ubicación actual del usuario. Puede hacerlo deshabilitando el botón 'CurrentLocation' en ViewDidload/ViewDidappear y habilitar el botón 'CurrentLocation' en -(MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation: método después [mapView.userLocation setTitle:@"I am here"];. Esto funcionará para ti.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top