更改引脚颜色MKMapView

我以这种方式向地图添加注释:

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; 

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

pinColor属性在MKPinAnnotationView类(而不是MKAnnotation协议)中定义。

您可以在viewForAnnotation委托方法中创建MKPinAnnotationView 。 如果您尚未实现该委托,则默认情况下会获得标准红色引脚。

在该委托方法中,您可以创建MKPinAnnotationView的实例,并可以将其pinColor设置为绿色。

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 }