Я пытаюсь добавить аннотации в мой MKMapView и я хочу установить аннотации быть интерактивными (интерактивную особенность, которую я сделал в didAddAnnotationViews.)IOS 7: didAddAnnotationViews не ответ на addAnnotation
На самом деле, это. функция работает отлично для IOS 6, но не работает на IOS 7. Я добавил простой оператор печати NSLog в моем didAddAnnotationViews метода, и я нашел didAddAnnotationViews не ответ на addAnnotaion правильно. Я думал, что сделалAddAnnotationViews будет называться каждый раз в ответ на 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
Вы должны установить canShowCallout и rightCalloutAccessoryView в методе делегата viewForAnnotation - не в didAddAnnotationViews. Вы можете оставить setRegion там, хотя это может привести к странному поведению в зависимости от того, как добавляются аннотации. Независимо от версии iOS, не делайте жестких предположений о том, когда методы делегата будут вызваны видом карты. – Anna
Спасибо, Анна Каренина, я решила свою проблему. – feohoTl