この問題の原因を調べてみましたが、何が問題なのかわかりません。ここで私を助けてくれることを願っています。
mapView に注釈を表示しようとしています。ピンはドロップされていますが、最初にユーザーの場所の注釈 (青い点) をタップしてから戻って注釈をタップするまで、吹き出しを表示することはできません。その後、注釈が表示され、すべて正常に動作します。もう 1 つの方法は、ピンの周りをランダムにタップすることです。マップ上に別のピンをドロップすると、同じ手順を実行する必要があります。
これは、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;
}