删除后再选择注释,然后重新添加注释

时间:2010-08-31 22:16:10

标签: iphone mapkit mkannotationview

嘿所有,我对iPhone的mapKit有一个密集的问题。

我正在使用MapKit框架,我正在尝试做的基本上是单击一个引脚,重新加载它然后在再次添加之后显示它的callOut。

这是我试图开始工作的代码..

-(void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view{
    NSLog(@"count of selected Annotations: %d",[mapView selectedAnnotations].count);
    MKAnnotation* pin = view.annotation;
    [mapView deselectAnnotation:pin animated:FALSE];
    [mapView removeAnnotation:pin];
    [mapView addAnnotation:pin];
    [self.mapView selectAnnotation:pin animated:TRUE];

一些观察:如果我注释removeAnnotations和addAnnotation行,我进入一个无限循环,因为当我选择注释:pin时,调用回调(这是这个方法)...否则,它不是,但是那是什么?为什么不是

[self.mapView selectAnnotation:pin animated:TRUE]; 

被叫?

我已经阅读了太多,并且已经打破了我的脑袋太多时间试图解决这个问题,解释和修复我的代码会比链接更有帮助。

提前致谢。 〜Fydo

1 个答案:

答案 0 :(得分:0)

所以我已经回答了我自己的问题......看来点击它时更改注释的最简单方法如下:

-(void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view{
    MKAnnotation* pin = view.annotation;
    UIImageView * blackPin = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"PinUnchecked.png"]];
   [[mapView viewForAnnotation:pin] addSubview:blackPin];

将调用此委托方法,然后将显示annotationView气泡并且annotationView将更改其图像...这就是我需要完成的所有内容...