自定义注释引脚在长按时更改为默认红色引脚。
- (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"];
}
}
只需触摸注释引脚即可显示所选图像。 但是,长按此引脚自定义图像将恢复为默认红色引脚。
如何解决此问题?
答案 0 :(得分:12)
使用MKAnnotationView
代替MKPinAnnotationView
,我猜测地图视图执行某种重置,然后返回默认图像(这是您看到的图像)