私の注釈の画像は、初めて追加した後のものです。すべての注釈には、番号が付いた画像があります。マップをスクロールすると、メソッド「viewForAnnotation」が呼び出され (2 回目)、間違った画像が表示されます.間違った注釈が返されたようです...
ViewAnnotation メソッド:
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation{
static NSString *identifier = @"pin";
VBAnnotationView *view = (VBAnnotationView *)[self.MapView dequeueReusableAnnotationViewWithIdentifier:identifier];
if (view == nil) {
view = [[VBAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:identifier];
}
return view; }
VBAnnotationView は私のカスタム MKAnnotationView であることに注意してください。
「ビュー」が nil でない場合、「dequeueReusableAnnotationViewWithIdentifier」によって見つかったビューは、間違った画像で返されます。「view == nill」かどうかのチェックをコメントアウトすると、すべての注釈の画像が正しいです。
最適化のために、注釈が既に存在する場合は「viewForAnnotation」メソッドをチェックインします。注釈が既に存在するかどうかのチェックを外すと、画像は正しく表示されます。