更改引脚颜色MKMapView

Ale*_*dro 9 mkpinannotationview mkmapview ios

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

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];
Run Code Online (Sandbox Code Playgroud)

针脚都是红色的,我希望它们都是绿色的.我怎样才能改变颜色?我尝试了以下内容,但仍然给出了红色标记:

annotationPoint2.pinColor = MKPinAnnotationColorGreen;
Run Code Online (Sandbox Code Playgroud)

cas*_*las 21

- (MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>) annotation 
  {
    MKPinAnnotationView *annView=[[MKPinAnnotationView alloc]initWithAnnotation:annotation reuseIdentifier:@"pin"];
    annView.pinColor = MKPinAnnotationColorGreen;
    return annView;
  }
Run Code Online (Sandbox Code Playgroud)

  • if([[注释标题] isEqualToString:@"当前位置"]){annView.pinColor = MKPinAnnotationColorGreen; } else {annView.pinColor = MKPinAnnotationColorRed;} (4认同)

小智 6

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

MKPinAnnotationViewviewForAnnotation委托方法中创建一个.如果您尚未实现该委托,则默认情况下会获得标准红色引脚.

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


dev*_*ike 5

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
}
Run Code Online (Sandbox Code Playgroud)