我的注释上的图像是第一次添加后的好。每个注释都有一个带有数字的图像。当我滚动地图并调用“viewForAnnotation”方法(第二次)并显示错误的图像时..似乎返回了错误的注释......
查看注释方法:
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation{
static NSString *identifier = @"pin";
VBAnnotationView *view = (VBAnnotationView *)[self.MapView dequeueReusableAnnotationViewWithIdentifier:identifier];
if (view == nil) {
view = [[VBAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:identifier];
}
return view; }
请注意,VBAnnotationView 是我的自定义 MKAnnotationView。
如果“视图”不为零,则“dequeueReusableAnnotationViewWithIdentifier”找到的视图将返回错误的图像。当我注释掉检查是否“view == nill”时,所有注释上的图像都是正确的。
为了优化,如果注释已经存在,我会检查方法“viewForAnnotation”。取消检查注释是否已存在时,图像将正确显示。