1

在我的应用程序中,我正在向我的地图视图添加和删除注释,但实际上即使我先添加新的然后删除旧的,注释也会闪烁

新注释是从互联网上收到的,所以我不能把它们从新注释的数组中删除......

我的问题是眨眼行为是如何产生的,我该如何避免这种情况?

我不想遍历注释并比较每个位置...所以我尝试延迟删除并最终以 0.2 秒结束。正是由于这种延迟,没有可见的眨眼,但这根本是不可取的。

谢谢

    NSMutableArray *annotationsToRemove = [[NSMutableArray alloc] initWithArray:[_mapView annotations]]; 
    [annotationsToRemove removeObject:[_mapView userLocation]];
    [_mapView addAnnotations:locations];
    // [_mapView performSelector:@selector(removeAnnotations:) withObject:annotationsToRemove afterDelay:0.2];
    [_mapView removeAnnotations:annotationsToRemove];

(“位置”是我的新注释数组)

4

1 回答 1

2

在删除注释后添加注释时总是会出现闪烁。如果您可以控制 Web 服务,请添加一个 unique id,检查您的地图上是否已存在具有该 ID 的注释,如果不存在则仅添加新注释。如果您无法添加id,请使用纬度和经度(可能应该是唯一的)进行检查。遍历它们不会很昂贵。

于 2012-06-13T23:36:55.320 回答