我为一堆位置设置了带有MKMapView
的MKAnnotationView
。我对服务器设置了异步请求,该服务器可以在任何给定时间返回屏幕上给定区域内的位置,并在用户拖动地图时发出另一个请求。
但是,引脚会落在已经存在的引脚上,而不是重复使用已经存在的引脚。我以为viewForAnnotation
方法中的行:
MKPinAnnotationView *pinView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:@"Pin"];
if(pinView == nil)
{
pinView = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"Pin"] autorelease];
[pinView setAnimatesDrop:YES];
}
else
{
[pinView setAnnotation:annotation];
}
会照顾它,但事实并非如此。也许我误解了这些代码行的目的。
任何建议,不胜感激!显然,我不想在地图上添加多余的注释,因此不胜感激。
最佳答案
您将必须浏览地图上已经存在的注释,并确定服务器的引脚是否已经放置。如果您有唯一的ID,则可以使用该ID,也可以比较每个图钉的纬度和经度。
您编写的代码的目的是:创建视图非常昂贵,因此当不可见图钉时,其视图可以回收并重新用于其他注释。
关于iphone - iOS MKAnnotationView重复删除而不是重复使用图钉,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8998185/