我以这种方式向地图添加注释:
MyAnnotation *annotationPoint2 = [[MyAnnotation alloc] init];
annotationPoint2.coordinate = anyLocation;
annotationPoint2.title = [NSString stringWithFormat:@"%@", obj];
annotationPoint2.subtitle = @""; //or set to nil
annotationPoint2.keyValue = [NSString stringWithFormat:@"%@", key];
[mapPins addAnnotation:annotationPoint2];
针脚都是红色的,我希望它们都是绿色的。我怎样才能改变颜色?我尝试过以下方法,但仍然给出了红色标记:
annotationPoint2.pinColor = MKPinAnnotationColorGreen;
答案 0 :(得分:20)
- (MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>) annotation
{
MKPinAnnotationView *annView=[[MKPinAnnotationView alloc]initWithAnnotation:annotation reuseIdentifier:@"pin"];
annView.pinColor = MKPinAnnotationColorGreen;
return annView;
}
答案 1 :(得分:5)
pinColor
属性在MKPinAnnotationView
类(而不是MKAnnotation
协议)中定义。
您在MKPinAnnotationView
委托方法中创建viewForAnnotation
。如果您尚未实现该委托,则默认情况下会获得标准红色引脚。
在该委托方法中,您创建了MKPinAnnotationView
的实例,并且可以将其pinColor
设置为绿色。
答案 2 :(得分:4)
Swift3就是这样:
func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
let annotationView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: "pin")
if annotation.title! == "My Place" {
annotationView.pinTintColor = UIColor.green
} else {
annotationView.pinTintColor = UIColor.red
}
return annotationView
}