我的应用中有一个MKMapView
,上面有几个引脚,我想为每个引脚设置不同的颜色。我的视图控制器正在实现MKMapViewDelegate
,我已经定义了viewForAnnotation方法。
- (MKAnnotationView *) mapView:(MKMapView *)mapView
viewForAnnotation:(id <MKAnnotation>) annotation {
MKPinAnnotationView *annView=[[MKPinAnnotationView alloc]
initWithAnnotation:annotation reuseIdentifier:@"pin"];
annView.pinColor = MKPinAnnotationColorGreen;
return annView;
}
工作正常并将引脚颜色更改为绿色。然而,所有引脚的颜色都有所改变,我想用几种颜色为它们着色(基于我定义的一些标准,我们假设我想要将奇数引脚设置为绿色,甚至将引脚设置为黄色或类似的东西)。如何实现这一目标?
答案 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;
}