2009-07-15 6 views
1

マップビューに3つのピンがあります。私はそれぞれに異なる色を与えたいと思います。デリゲートメソッド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

+0

id クラスには、カラーインジケータのフィールド、または色の決定に使用するカウンタが含まれています。 – notnoop

+0

完璧!ありがとう。 – 4thSpace

関連する問題