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サービスを制御できる場合は、一意のアノテーションを追加し、idそのIDのアノテーションがマップにすでに存在するかどうかを確認し、存在しない場合にのみ新しいアノテーションを追加します。を追加できない場合はid、緯度と経度を使用して確認してください(おそらく一意である必要があります)。それらを反復処理するのに費用はかかりません。

于 2012-06-13T23:36:55.320 に答える