嘿所有,我对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
答案 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将更改其图像...这就是我需要完成的所有内容...