2012-06-13 3 views
0

в моем приложении Я добавляю и удаляю аннотации к моему виду карты, но на самом деле, даже если я сначала добавляю новые, а затем удаляю старые, появляется мигание аннотацииДобавление и удаление аннотаций из MapView приводит к миганию

новые аннотации получены из интернета, и поэтому я не могу просто удалить их из массива новых ...

Моего вопроса заключается в том, как она приходит к поведению моргания и как я может избежать этого?

Я не хочу перебирать аннотации и сравнивать каждое местоположение ... Итак, я попытался отложить удаление и в итоге оказался на 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]; 

(«место» мой массив новых аннотаций)

ответ

1

Мигание всегда происходит при добавлении аннотации только после удаления одного. Если у вас есть контроль над веб-службой, добавьте уникальный id, проверьте, существует ли аннотация с этим идентификатором на вашей карте и добавляется только новая аннотация, если это не так. Если вы не можете добавить id, проверьте использование широты и долготы (что, вероятно, должно быть уникальным). Итерация через них не будет дорогостоящей.

Смежные вопросы