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

使用 anMKAnnotationView而不是MKPinAnnotationView,我猜地图视图会执行某种重置,这会返回到默认图像(这是您看到的图钉图像)

于 2012-08-31T12:43:35.943 回答