2012-10-08 15 views
6

Ich habe eine mapView mit annotationViews und die userLocation blauen Punkt.Deaktivieren Sie MKmapkit mapView userLocation annotationView

ich den folgenden Code bin mit dem blauen Punkt zu bekommen:

[self.mapView setShowsUserLocation:YES]; 

Die annotationViews sind wählbar und Legenden haben.

Wenn jedoch ein annotationView in der Nähe des Benutzerstandorts ist, stiehlt der blaue Punkt manchmal die Berührung.

Ich kann eine annotationView.enabled = NO; setzen und es wird die AnnotationView, aber es wird nicht eine Berührung von einem nahen von annotationView stehlen.

Ich möchte den Benutzerstandort blauen Punkt annotationView zu aktivieren = NEIN, so dass es nicht die Nähe von annotationViews stehlen stehlen.

kann ich den Titel des blauen Punkt-Set mit:

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

Aber ich den blauen Punkt nicht deaktivieren können.

Danke!

+0

Try annotation.hidden = YES – 0xSina

+1

Sie können nicht tun self.mapView.userLocation.enabled = NO? –

+0

Wenn es Ihnen nichts ausmacht, eine eigene Anmerkungsansicht zu erstellen, können Sie die Ansicht überschreiben, die in '-mapView: viewForAnnotation:' verwendet wird. Eine Menge Arbeit! –

Antwort

8

Sie können festlegen, enabled auf die MKAnnotationView des Benutzers Lage durch einen Verweis darauf in der didAddAnnotationViews Delegatmethode bekommen (so können Sie sicher sein, die Ansicht bereit ist):

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

(Es gibt keine enabled Eigenschaft auf das userLocationModell Objekt -. es ist eine Eigenschaft der Ansicht)

+0

Funktioniert gut, danke! – user1607483

Verwandte Themen