Ich habe eine Reihe von Meetup-Objekten, die auf einer Karte als rote Pins angezeigt werden. Ich möchte die Farbe des Stiftes basierend auf einem Attribut jedes Meetup-Objekts ändern. Jedes Meetup hat eine Kategorie. Wenn das erste Meetup im Array eine Kategorie A hat, möchte ich, dass der Pin rot ist, und wenn das zweite Meetup eine Kategorie B hat, möchte ich, dass der Pin blau ist (und so weiter). Ich versuche dies in ViewForAnnotation zu tun.Ändern MKAnnotation Pin Farbe
Hier einige meiner Code:
func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView? {
if annotation is Meetup {
let identifier = "Location"
var annotationView = mapView.dequeueReusableAnnotationViewWithIdentifier(identifier) as! MKPinAnnotationView!
if annotationView == nil {
annotationView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: identifier)
annotationView.enabled = true
annotationView.canShowCallout = true
annotationView.animatesDrop = false
annotationView.pinTintColor = UIColor(red: 255/255, green: 36/255, blue: 0, alpha: 1)
annotationView.tintColor = UIColor(white: 0.0, alpha: 0.5)
ich etwas in hier wie zu tun versuche:
if annotation is Meetup where Meetup.category == "Category A" {
annotationView.pinTintColor = UIColor(red: 255/255, green: 36/255, blue: 0, alpha: 1)
} else if annotation is Meetup where Meetup.category == "Category B" {
annotationView.pinTintColor = UIColor(red: 0, green: 36/255, blue: 255/255, alpha: 1)
Kann jemand in die richtige Richtung zeigen Sie mir bitte auf, wie dies erreicht zu erhalten ?
Danke!
Willst du nicht einfach etwas wie 'wenn Anmerkung ist Meetup wo annotation.category ==" Kategorie A "{...}'? – Rob
Ja! Wenn ich jedoch hinzufüge, dass es nicht funktioniert. Ich denke nicht, dass die Anmerkung das Attribut der Kategorie hat. Ich kann nur auf Titel, Untertitel oder Koordinaten zugreifen – chickenparm
Sie benötigen eine Eigenschaft, um die Kategorie des mit dieser Anmerkung verknüpften Meetups zu identifizieren. Im Allgemeinen würden Sie eine Annotation-Unterklasse erstellen, die die Kategorie (oder eine andere Kennung, mit der Sie die Kategorie bestimmen könnten) enthält. – Rob