2012-10-08 5 views
6

I have a mapView con annotationViews e il punto blu userLocation.Disable MKmapkit mapView userLocation annotationView

Sto usando il seguente codice per ottenere il punto blu:

[self.mapView setShowsUserLocation:YES]; 

Il annotationViews sono selezionabili e hanno didascalie.

Tuttavia se uno annotationView è vicino alla posizione dell'utente, a volte il punto blu ruba il tocco.

Posso impostare un annotationView.enabled = NO; e mostrerà l'annotationView ma non ruberà un tocco da una chiusura di annotationView.

Vorrei impostare il punto blu posizione utente annotationView su abilitato = NO, quindi non ruba il tocco di chiusura di annotationViews.

posso impostare il titolo del punto blu con:

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

ma non riesco a disattivare il punto blu.

Grazie!

+0

Prova annotation.hidden = YES – 0xSina

+1

non si può fare self.mapView.userLocation.enabled = NO? –

+0

Se non ti dispiace creare la tua vista annotazione, puoi sovrascrivere la vista che viene usata in '-mapView: viewForAnnotation:'. Un sacco di lavoro però! –

risposta

8

È possibile impostare enabled sul del MKAnnotationView ottenendo un riferimento ad essa nel metodo didAddAnnotationViews delegato posizione dell'utente (in modo da poter essere sicuro che la vista è pronto):

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

(Non v'è alcun enabled proprietà su il userLocationmodello di oggetti -. si tratta di una proprietà della vista)

+0

Funziona alla grande, grazie! – user1607483