代码之家  ›  专栏  ›  技术社区  ›  RaYell

MkmapView中同一地图上的多个插针颜色

  •  2
  • RaYell  · 技术社区  · 14 年前

    我有一个 MKMapView 在我的应用程序中有几个别针,我想为每个别针设置不同的颜色。我的视图控制器正在实现 MKMapViewDelegate 我已经定义了viewforannotation方法。

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

    它可以很好地工作,并将针颜色更改为绿色。但是,所有针脚的颜色都会改变,我想用几种颜色给它们上色(根据我定义的一些标准,假设我想要奇数个绿色针脚,偶数个黄色针脚,或者类似的简单样式)。如何实现这一目标?

    3 回复  |  直到 12 年前
        1
  •  2
  •   RaYell    14 年前

    我用图像而不是单色来解决这个问题。这样我就可以有任意多的针。

        2
  •  0
  •   Titouan de Bailleul    12 年前
    if(annotation.fillsYourCriteria)  
        annView.pinColor = MKPinAnnotationColorGreen;  
    else  
        annView.pinColor = MKPinAnnotationColorYellow;  
    return annView;  
    

    就这么简单?

        3
  •  0
  •   Baz    12 年前

    我遇到了同样的问题,然后用这个代码解决了

    if([[pinView.annotation title] isEqualToString:@"Current Location"])
    {
        pinView.pinColor = MKPinAnnotationColorRed; 
    }
    else
    {
        pinView.pinColor = MKPinAnnotationColorPurple; 
    }