2012-10-08 31 views
6

Tengo un mapView con annotationViews y el userLocation punto azul.Deshabilitar MKmapkit mapView userLocation anotaciónVer

estoy usando el siguiente código para obtener el punto azul:

[self.mapView setShowsUserLocation:YES]; 

El annotationViews son seleccionables y tienen llamadas.

Sin embargo, si un annotationView está cerca de la ubicación del usuario, a veces el punto azul le roba el toque.

Puedo establecer un annotationView.enabled = NO; y se mostrará la anotaciónView pero no robará un toque de un cierre por annotationView.

Me gustaría establecer la ubicación del usuario punto azul annotationView en enabled = NO, por lo que no roba el toque de cerca por annotationViews.

que puede definir el título del punto azul con:

self.mapView.userLocation.title = @"title here..." 

pero no puedo desactivar el punto azul.

Gracias!

+0

Try = SÍ – 0xSina

+1

Usted no puede hacer self.mapView.userLocation.enabled = nO? –

+0

Si no le importa hacer su propia vista de anotación, puede anular la vista que se usa en '-mapView: viewForAnnotation:'. ¡Mucho trabajo! –

Respuesta

8

Puede configurar enabled en la MKAnnotationView por conseguir una referencia a él en el método didAddAnnotationViews delegado de la ubicación del usuario (lo que puede estar seguro de la vista es listo):

-(void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views 
{ 
    MKAnnotationView *ulv = [mapView viewForAnnotation:mapView.userLocation]; 
    ulv.enabled = NO; 
} 

(No hay enabled propiedad de la userLocation modelo de objeto -. que es una propiedad de la vista) annotation.hidden

+0

Funciona muy bien, gracias! – user1607483