1
我試圖添加註解到我的MKMapView,我想設置註釋可以點擊(點擊的功能,我在didAddAnnotationViews沒有。)IOS 7:didAddAnnotationViews不響應addAnnotation
其實這個。功能工作正常的IOS 6,但不工作的IOS 7.我在didAddAnnotationViews添加了一個簡單的NSLog打印語句方法,我發現didAddAnnotationViews沒有響應addAnnotaion正常。我認爲didAddAnnotationViews將被稱爲每次迴應addAnnotaion。當我添加了幾個註釋時,只有一個日誌語句打印,意思是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];
}
}
您能提供一個您嘗試過的示例嗎? – itsbruce
您應該在viewForAnnotation委託方法中設置canShowCallout和rightCalloutAccessoryView,而不是在didAddAnnotationViews中。您可以將setRegion留在那裏,但這可能會導致奇怪的行爲,具體取決於註釋的添加方式。無論iOS版本如何,不要對地圖視圖調用委託方法的時間做出嚴格的假設。 – Anna
謝謝安娜卡列尼娜,我解決了我的問題。 – feohoTl