更改引脚颜色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 }