1

我遇到了 MapKit 代表的异常行为

-(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation (id<MKAnnotation>)annotation
{
MKAnnotationView *annotationView=[mapView viewForAnnotation:annotation];
return annotationView;
}

当我将注释添加到mapkit并将setdelegate添加到self时,不会调用此方法。但是当我将区域设置为

 MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance(coordinate, 7.5*1609.344 ,7.5*1609.344 );
[productsMapView setRegion:viewRegion animated:YES];

然后调用委托方法。我不知道为什么会这样。有人帮助

4

1 回答 1

1

您需要考虑框架的工作方式。

  1. viewForAnnotation 方法仅在框架即将绘制 Annotation 时调用。
  2. 框架仅在显示位置(包含该注释)时绘制一个注释。

因此,当您将视图设置为区域(包含注释)时,框架会调用 viewForAnnotation。(顺便说一句,您在 viewForAnnotation 方法实现中有逻辑错误)

于 2014-06-05T10:08:59.143 回答