我正在尝试在 MKMapView 中添加注释,我想将注释设置为可点击。(我在 didAddAnnotationViews 中执行了可点击功能。)
实际上,此功能适用于IOS 6,但不适用于IOS 7.我在 didAddAnnotationViews 方法中添加了一个简单的NSLog打印语句,我发现 didAddAnnotationViews 没有正确回应 addAnnotaion 。我认为每次响应 addAnnotaion 时都会调用 didAddAnnotationViews 。当我添加几个注释时,只有一个日志语句打印,这意味着 didAddAnnotationViews 只能执行一次。
我正在使用 MapKit,MKMapView ,这个问题只发生在IOS 7.有谁能让我知道如何修复或找到didAddAnnotationViews无法正常工作的原因?
- (void)mapView:(MKMapView *)mv didAddAnnotationViews:(NSArray *)views
{
MKAnnotationView *annotationView = [views objectAtIndex:0];
MapViewAnnotation *annotation=annotationView.annotation;
NSLog(@"<==========didAddAnnotationViews=============> %@",annotation.title);
annotationView.canShowCallout=YES;
if(annotation.subtitle==nil){
annotationView.rightCalloutAccessoryView = nil;
}else{
annotationView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(annotation.coordinate, 11000, 11000);
[mv setRegion:region animated:YES];
}
}
答案 0 :(得分:0)
方法签名意味着同时给出了多个注释视图:
- (void)mapView:(MKMapView *)mv didAddAnnotationViews:(NSArray *)views;
尝试使用以下命令记录视图数组:
NSLog(@"%@", views);
如果你很幸运,你会看到所有的注释。迭代它们而不是只查看索引0处的第一个对象。