【问题标题】:Changing pin color MKMapView更改引脚颜色 MKMapView
【发布时间】:2012-10-03 07:13:44
【问题描述】:

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

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;

【问题讨论】:

    标签: ios mkmapview mkpinannotationview


    【解决方案1】:

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

    您在viewForAnnotation 委托方法中创建一个MKPinAnnotationView。如果您尚未实现该委托,则默认情况下您会获得标准的红色图钉。

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

    【讨论】:

      【解决方案2】:
      - (MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>) annotation 
        {
          MKPinAnnotationView *annView=[[MKPinAnnotationView alloc]initWithAnnotation:annotation reuseIdentifier:@"pin"];
          annView.pinColor = MKPinAnnotationColorGreen;
          return annView;
        }
      

      【讨论】:

      • 此代码有效,但即使当前用户位置变为绿色,即使我希望它是蓝色的,周围有圆圈。我该怎么做?
      • if([[annotation title] isEqualToString:@"Current Location"]) { annView.pinColor = MKPinAnnotationColorGreen; }else{annView.pinColor = MKPinAnnotationColorRed;}
      • @Alessandro annotation == mapView.userLocation 时需要返回 nil 以显示用户位置的蓝点及其周围的圆圈
      • 如果想在pin被触摸时显示标题/副标题信息,记得设置视图的canShowCallout
      【解决方案3】:

      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
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-28
        • 1970-01-01
        相关资源
        最近更新 更多