Несколько цветов булавки на одной карте в MKMapView - PullRequest
2 голосов
/ 01 сентября 2010

У меня в приложении MKMapView с несколькими выводами, и я бы хотел установить разные цвета для каждого вывода.Мой контроллер представления реализует MKMapViewDelegate, и я определил метод viewForAnnotation.

- (MKAnnotationView *) mapView:(MKMapView *)mapView 
viewForAnnotation:(id <MKAnnotation>) annotation {
    MKPinAnnotationView *annView=[[MKPinAnnotationView alloc] 
        initWithAnnotation:annotation reuseIdentifier:@"pin"];
    annView.pinColor = MKPinAnnotationColorGreen;
    return annView;
}

Он отлично работает и меняет цвет вывода на зеленый.Однако цвет меняется для всех выводов, и я хотел бы закрасить их несколькими цветами (основываясь на некоторых критериях, которые я бы определил, давайте предположим, что я хочу, чтобы нечетные выводы были зелеными, а четные - желтыми или что-то более простое).Как этого достичь?

Ответы [ 3 ]

2 голосов
/ 17 января 2011

Я решил эту проблему, используя изображения вместо pinColor.Таким образом, я могу иметь столько контактов, сколько захочу.

0 голосов
/ 13 сентября 2012

Я столкнулся с той же проблемой, затем решил с помощью этого кода

if([[pinView.annotation title] isEqualToString:@"Current Location"])
{
    pinView.pinColor = MKPinAnnotationColorRed; 
}
else
{
    pinView.pinColor = MKPinAnnotationColorPurple; 
}
0 голосов
/ 01 сентября 2010
if(annotation.fillsYourCriteria)  
    annView.pinColor = MKPinAnnotationColorGreen;  
else  
    annView.pinColor = MKPinAnnotationColorYellow;  
return annView;  

Что-нибудь простое?

...