didAddAnnotationViews不工作在MKMapView

我一直在玩MKMapView,并试图解决MKMapViewDelegate系统如何工作。 到目前为止,我没有运气在添加当前位置标记时调用didAddAnnotationViews。

我已经设置了我的应用程序委托来实现MKMapViewDelegate,我有一个Outlet到我的xib中的MapView,并设置MapView的委托属性为self,就像在应用程序委托实例中一样。 我已经在应用程序委托中实现了didAddAnnotationViews,我只需NSLog对它的任何调用,如下所示。 地图被设置为显示当前位置,并在启动时添加蓝色引脚注释,但由于某些原因,AddAnnotationViews未被命中。

- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views{ NSLog(@"Annotation added!"); } 

任何想法,我可能错过了?

mapView:didAddAnnotations:仅在响应addAnnotation:addAnnotations:被调用。 用户位置引脚不会触发此委托方法。

我在BNR遇到同样的问题。 这是我最终使用的:

  // Tell MKMapView to zoom to current location when found - (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation { NSLog(@"didUpdateUserLocation just got called!"); MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance([userLocation coordinate], 250, 250); [mapView setRegion:region animated:YES]; } 

只是想确认我能够使用这个工作

  - (void)mapView:(MKMapView *)mv didAddAnnotationViews:(NSArray *)views { MKAnnotationView *annotationView = [views objectAtIndex:0]; id <MKAnnotation> mp = [annotationView annotation]; MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance([mp coordinate], 250,250); [mv setRegion:region animated:YES]; } 

确保你正在使用mapView.delegate = self; 或[mapView setDelegate:self];