【问题标题】:didAddAnnotationViews not working on MKMapViewdidAddAnnotationViews 在 MKMapView 上不起作用
【发布时间】:2011-01-29 23:04:51
【问题描述】:

我一直在使用 MKMapView 并试图了解 MKMapViewDelegate 系统的工作原理。到目前为止,当添加当前位置标记时,我无法让 didAddAnnotationViews 被调用。

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

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

有什么我可能错过的想法吗?

【问题讨论】:

    标签: objective-c ios mkmapview mkannotation


    【解决方案1】:

    我在 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];
    }
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 谢谢,你确定吗?我确实想知道是否是这种情况,但我一直在关注关于 iPhone 编程的 Big Nerd Ranch 书中的 WhereAmI 教程,它非常清楚地指出,当添加表示当前位置的蓝点时,将调用 didAddAnnotationViews。事实上,它提供了一个代码块,用于在 didAddAnnotationsView 中设置当前区域以放大当前位置。这对作者来说似乎是一个巨大的错误。
      • 实际上,通过谷歌搜索确认您是对的,Apple 更改了 IOS 4.0 中的行为!显然我现在需要使用 didUpdateUserLocation。
      【解决方案3】:

      只是想确认我能够使用

       - (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 = 自我; 要么 [mapView setDelegate:self];

      【讨论】:

        猜你喜欢
        • 2012-09-15
        • 1970-01-01
        • 1970-01-01
        • 2018-03-13
        • 1970-01-01
        • 2013-12-31
        • 1970-01-01
        • 1970-01-01
        • 2013-07-02
        相关资源
        最近更新 更多