我一直在寻找可能是这个问题的根源,但我看不出有什么问题。我希望你能在这里帮助我。
我正在尝试在mapView中显示注释,引脚被删除但是在我首先点击用户位置注释(蓝点)然后返回并点击注释然后注释之前无法看到标注显示,一切正常。另一种方法是随机敲击引脚,有时在内部,运气好的话会显示标注。如果我在地图上删除另一个图钉,我必须执行相同的操作。
这只发生在iOS6,模拟器和设备中。 iOS5完美运行。
这是我用于viewForAnnotation
的代码- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation {
MKAnnotationView *annotationView = nil;
//Check if this annotation is not the blue dot for user location
if(annotation != mapView.userLocation) {
//Try to rehuse a previous annotation
annotationView = (MKAnnotationView *) [mapView dequeueReusableAnnotationViewWithIdentifier:@"searchResult"];
//If we don't have any, create it
if (annotationView == nil) {
annotationView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"searchResult"];
}
else {//Or re use it
annotationView.annotation = annotation;
}
[annotationView setImage: [UIImage imageNamed:@"customMarker.png"]];
annotationView.enabled = YES;
annotationView.canShowCallout = YES;
annotationView.centerOffset = CGPointMake(0,-16);
annotationView.rightCalloutAccessoryView = nil;//Avoid again the detail button because is a geographic reference
}
else {//Show a text when the blue dot for user location is pressed
[mapView.userLocation setTitle:NSLocalizedString(@"you_are_here", nil)];
}
return annotationView;
}
答案 0 :(得分:0)
我发现了问题。
我创建自定义MKAnnotation的方式如下:
使用此自定义类:http://gist.github.com/3866874 然后这段代码:
MapAnnotation *location = [[MapAnnotation alloc] init];
location.title = @"some title";
location.subtitle =@"some subtitle";
location.coordinate = mapRegion.center;
location.placeData = resultSet;
[map setDelegate:self];
[map addAnnotation:location];
[map selectAnnotation:location animated:YES]; //THIS LINE WAS CAUSING THE PROBLEM IN IOS6
我刚删除了这行
[map selectAnnotation:location animated:YES];
现在正确显示了标注。