mkmapview MKUserLocation AnnotationView
Ich versuche zu erstellen benutzerdefinierter annotationviews für die Anmerkungen, die auf meiner Karte. Ich mache, dass durch die Anpassung des Protokolls MKMapViewDelegate
und überschreiben der Funktion mapView:viewForAnnotation:
. Es funktioniert alles, das problem ist nur, dass ich auch showsUserLocation
eingestellt TRUE
, was bedeutet, dass eine "Anmerkung" ich bekomme in meinem mapView:viewForAnnotation:
Methode ist von der Klasse MKUserLocation
.
Ich will nicht die userlocation annotation zu haben, der meine benutzerdefinierte annotationview, ich will, dass der Standard-userlocation annotationview! Wie kann ich wieder die Standard-userlocation annotationview für die userlocation oder ausschließen aus den Anmerkungen, die in mapView:viewForAnnotation:
)?
Habe ich versucht zu fangen, die UserLocation in der mapView:viewForAnnotation:
Methode, aber ich weiß nicht, was zurück! (In diesem Beispiel ich fahre einen standard-MKAnnotationView, aber, die nicht Aussehen wie die Standard-UserLocation Annotation (offensichtlich).)
if (![[annotation class] isEqual:[MKUserLocation class]]) {
MKAnnotationView *view = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"customAnnotation"];
//edit the custom view
return view;
}
MKAnnotationView *view = [[MKAnnotationView alloc] init];
return view;
- bitte schreiben Sie code, die Sie umgesetzt haben, in mapView:viewForAnnotation
Du musst angemeldet sein, um einen Kommentar abzugeben.
zeigen die default-Anmerkung für Benutzer Lage, nur zurück
nil
für diesen Fall, habe ich es auf diese Weise:In Ihrem viewForAnnotation Methode schreiben, dieses Stück code. Hier die var 'map' ist die Steckdose für Ihre MKMapview;
Erstellen von benutzerdefinierten
AnnotationView
:Und in
.m file
//Verwendung Anmerkungen Hinzufügen
#import "AnnotationView.h"
in Ihrem jeweiligen.m file
:Oben ist ein einfaches Beispiel, wie man erstellen
AnnotationView
.Wenn das Objekt in der annotation parameter ist eine Instanz der MKUserLocation Klasse, können Sie eine benutzerdefinierte Ansicht, um die Position des Benutzers. Zur Anzeige der Position des Benutzers mit Hilfe der Standard-Ansicht zurückzukehren, gleich null.
Wenn Sie nicht diese Methode implementieren, oder wenn Sie die Rückgabe nil aus Ihrer Umsetzung für die Anmerkungen anderer als der Standort der Benutzer die annotation, die map-Ansicht verwendet eine standard-pin-Beschriftungsansicht.