2009-07-15 47 views
1

我在地图视图上有三个引脚。我想给每个人一个不同的颜色。在委托方法viewForAnnotation,我这样做:如何区分注释引脚?

- (MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>) annotation{ 
MKPinAnnotationView *annView=[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"anAddress"]; 
annView.pinColor = MKPinAnnotationColorGreen; 
annView.animatesDrop=TRUE; 
annView.canShowCallout = YES; 
annView.calloutOffset = CGPointMake(-5, 5); 
return annView; 
} 

我想创造MKPinAnnotationViews的数组,但我怎样才能得到,因为委托方法正确的一个不被索引到什么?

回答

3

要区分UIView,可以使用the tag property及其对应的viewWithTag:方法。

但是,在您的上下文中,我会建议将颜色添加到注释类。然后你可以确保你不会重复使用同一个调用者的多个引脚。

+0

你的意思是制作一个自定义的MKPinAnnotationView?但是,当代表发生火灾时,我怎样才能打出正确的答案呢?或者它有什么关系?如果没有,我可以保留一个类级别的计数器,在每次触发代表时将它们从数组中拉出来。 – 4thSpace 2009-07-15 18:08:26