So verhindern Sie, dass die viewForAnnotation-Methode das blaue Leuchtfeuer für den Standardbenutzerstandort in iOS überschreibt

Im Moment fülle ich eine Kartenansicht mit Anmerkungen und zeige auch den aktuellen Standort des Benutzers an. Mit der viewForAnnotation-Methode werden alle Anmerkungen mit dem standardmäßigen roten Stift überschrieben. Ich möchte jedoch die Ansichten für die anderen Anmerkungen zurückgeben, aber den Benutzerstandort als standardmäßigen blauen Leuchtfeuer beibehalten. Gibt es eine Möglichkeit, dies einfach zu tun, oder muss ich eine neue Anmerkungsansicht erstellen und die richtige zurückgeben, abhängig von der Anmerkung?

Im Moment habe ich so etwas wie:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
    if (annotation.coordinate == locationManager.location.coordinate) {

return nil;

    }else {

    MKAnnotationView *annotationView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"Beacon"];

    // Button
    UIButton *button = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
    button.frame = CGRectMake(0, 0, 23, 23);
    annotationView.rightCalloutAccessoryView = button;


    annotationView.canShowCallout = YES;

    return annotationView;
}
}

Aber ich kann die beiden nicht gleichsetzen, weil ich die Koordinateneigenschaft nicht aus dem Annotation-Argument herausholen kann.

Kennt jemand irgendwelche Lösungen dafür?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage