У меня есть массив объектов Meetup, которые отображаются на карте в виде красных контактов. Я хотел бы изменить цвет булавки на основе атрибута каждого объекта Meetup. У каждого Meetup есть категория. Если в первом Meetup в массиве есть категория A, я бы хотел, чтобы штырь был красным, а если второй Meetup имеет категорию B, я бы хотел, чтобы штырь был синим (и так далее). Я пытаюсь сделать это в viewForAnnotation.Изменить MKAnnotation Pin Color
Вот некоторые из моего кода:
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)
Я пытаюсь сделать что-то здесь, как:
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)
Может кто-то пожалуйста, мне точку в правильном направлении, о том, как получить это достигается ?
Спасибо!
Не хотите ли вы что-то вроде 'if аннотации Meetup где annotation.category ==" Категория A "{...}'? – Rob
Да! Однако, когда я добавляю, что он не работает. Я не думаю, что аннотация имеет атрибут категории. Я могу получить доступ только к заголовку, субтитрам или координатам – chickenparm
Для определения категории встречи, связанной с этой аннотацией, вам нужно некоторое свойство. Как правило, вы создадите подкласс аннотаций, который включает категорию (или какой-либо другой идентификатор, с помощью которого вы могли бы определить категорию). – Rob