2

カスタム アノテーション ピンは、長押しでデフォルトの赤いピンに変わります。

  - (MKAnnotationView *) mapView:(MKMapView *)mapingView viewForAnnotation:(id <MKAnnotation>) annotation {
 MKPinAnnotationView *annView = nil;
        if(annotation != mapingView.userLocation) 
        {

            static NSString *defaultPinID = kDEFAULTPINID;
            annView = (MKPinAnnotationView *)[mapingView dequeueReusableAnnotationViewWithIdentifier:defaultPinID];
            if ( annView == nil ) 
            annView = [[MKPinAnnotationView alloc]
                                             initWithAnnotation:annotation reuseIdentifier:defaultPinID] ;


            annView.canShowCallout = YES;
            annView.image = [UIImage imageNamed:@"icon.png"];//sets image for default pin

}
return annView;
}


- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKPinAnnotationView *)view 
    { 
        if ([[view.annotation title] isEqualToString:@"AnnotationTitle"] ) {

             view.image = [UIImage imageNamed:@"selected_IconImage.png"];
       }
    }

注釈ピンをタッチするだけで、選択した画像が表示されます。ただし、ピンのカスタム画像を長押しすると、デフォルトの赤いピンに戻ります。

この問題を解決するにはどうすればよいですか?

4

1 に答える 1

12

MKAnnotationViewの代わりに を使用しMKPinAnnotationViewます。マップ ビューが何らかのリセットを実行し、デフォルトの画像 (表示されるピンの画像) に戻ると思います。

于 2012-08-31T12:43:35.943 に答える