Hallo liebe Leute!
Ich habe eine Karte, die mit Pins aus einer Datenbank befüllt wird.
Darüber hinaus wird die Position des Users angezeigt. Dieser hat auch die Möglichkeit, neue Pins zu setzen.
Jetzt möchte ich aber, dass die Farbe der Pins sich unterscheidet.
Dazu habe ich eine Delegate method von MKMapView überschrieben:
Alles anzeigen
Um zu entscheiden, welche Farbe ein Pin haben soll, schreibe ich vor dem Setzen der Pin die entsprechende Farbe in den String und setze hinterher auf Rot zurück:
Jetzt habe ich damit das Problem, dass auch die Userlocation überschrieben wird und mit einem roten Pin angezeigt wird.
Um das zu umgehen, habe ich in die mapView:viewForAnnotation: folgende Abfrage eingebaut:
Leider funktioniert das nicht…
Scheinbar ist die userlocation auch mit der Klasse MKPointAnnotation deklariert.
Hat jemand von euch vllt. 'ne Ahnung, wie ich diese Abfrage umgestalten könnte, damit ich das gewünschte Ergebnis erziele?
Ich freu mich riesig über eure Hilfe!
Vielen lieben Danke, mit Grüßen
Julian
Ich habe eine Karte, die mit Pins aus einer Datenbank befüllt wird.
Darüber hinaus wird die Position des Users angezeigt. Dieser hat auch die Möglichkeit, neue Pins zu setzen.
Jetzt möchte ich aber, dass die Farbe der Pins sich unterscheidet.
Dazu habe ich eine Delegate method von MKMapView überschrieben:
Quellcode
- - (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation
- {
- MKPinAnnotationView *pinView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"thisPin"];
- if ([needleColor isEqualToString:@"red"]) {
- pinView.pinColor = MKPinAnnotationColorRed;
- }
- else if ([needleColor isEqualToString:@"green"]) {
- pinView.pinColor = MKPinAnnotationColorGreen;
- }
- else if ([needleColor isEqualToString:@"purple"]) {
- pinView.pinColor = MKPinAnnotationColorPurple;
- }
- else {
- pinView.pinColor = MKPinAnnotationColorRed;
- }
- return pinView;
- }
Um zu entscheiden, welche Farbe ein Pin haben soll, schreibe ich vor dem Setzen der Pin die entsprechende Farbe in den String und setze hinterher auf Rot zurück:
Jetzt habe ich damit das Problem, dass auch die Userlocation überschrieben wird und mit einem roten Pin angezeigt wird.
Um das zu umgehen, habe ich in die mapView:viewForAnnotation: folgende Abfrage eingebaut:
Leider funktioniert das nicht…
Scheinbar ist die userlocation auch mit der Klasse MKPointAnnotation deklariert.
Hat jemand von euch vllt. 'ne Ahnung, wie ich diese Abfrage umgestalten könnte, damit ich das gewünschte Ergebnis erziele?
Ich freu mich riesig über eure Hilfe!
Vielen lieben Danke, mit Grüßen
Julian