カスタム注釈を作成しており、dequeueReusableAnnotation を使用しようとしています。ピンの違いは、ピン画像に使用される png です。
myAnnotation クラスを作成し、注釈を作成するときにこのコードを使用します。
if([category isEqualToString:@"anti-social-behaviour"]){
point.annotationImg=@"A.png";
}
else
if([category isEqualToString:@"burglary"]){
point.annotationImg=@"B.png";
}
else....
今viewForAnnotationで:
- (MKAnnotationView *)mapView:(MKMapView *)aMapView viewForAnnotation:(id<MKAnnotation>)annotation
{
if ([annotation class] == MKUserLocation.class) {
return nil;
}
static NSString *identifier = @"myPin";
MKPinAnnotationView *pinView = nil;
pinView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:identifier];
if (pinView == nil)
{
pinView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:identifier];
pinView.canShowCallout = YES;
pinView.image = [UIImage imageNamed:[(Annotation*)annotation annotationImg]];
}
return pinView;
}
何らかの方法で識別子を使用する必要があることはわかっていますが、わかりませんでした。問題は、ピンを最初にロードしたときは問題なく、2 回目は画像がめちゃくちゃになることです。推奨事項はありますか?