MKMapView中同一地图上的几种图钉颜色

时间:2010-09-01 08:53:41

标签: iphone annotations ios4 mkmapview

我的应用中有一个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 个答案:

答案 0 :(得分:2)

我通过使用图像而不是pinColor解决了这个问题。这样我可以拥有任意数量的引脚。

答案 1 :(得分:0)

if(annotation.fillsYourCriteria)  
    annView.pinColor = MKPinAnnotationColorGreen;  
else  
    annView.pinColor = MKPinAnnotationColorYellow;  
return annView;  

那么简单吗?

答案 2 :(得分:0)

我遇到了同样的问题,然后通过使用此代码解决了

if([[pinView.annotation title] isEqualToString:@"Current Location"])
{
    pinView.pinColor = MKPinAnnotationColorRed; 
}
else
{
    pinView.pinColor = MKPinAnnotationColorPurple; 
}