Я работаю с объектами NSMutableArray
, которые соответствуют протоколу MKAnnotation
. Мой вопрос со временем добавляет новые объекты в массив, может ли кто-нибудь сказать мне, что является предпочтительным методом для обновления аннотаций на mapView. Должен ли я искать удаление всех контактов перед добавлением обновленного массива, или мне лучше пометить/пометить существующие контакты в объекте MKAnnotation
и добавить только новые (не отмеченные тегами) контакты?Обновление аннотаций MKMapView из обновленного массива?
ответ
Удаление всех контактов и добавление назад всего массива, включая новые аннотации, приведет к фликкеру и излишней перерисовке булавок, которые не изменились.
Если не требуется мерцание или по какой-либо причине необходимо полное обновление, лучше просто указать вид карты, чтобы добавить новые контакты.
После того как ваш основной массив аннотаций обновляются с новыми штырями, построить временный массив с именем говорит newAnnots
, содержащие ссылки на новые аннотации в основном массиве и передать newAnnots
к addAnnotations:
методе зрения карты. После этого временный массив может быть отброшен.
Однако вместо использования меток для идентификации «новых» аннотаций вы можете просто проверить, существует ли объект аннотации в вашем основном массиве в массиве annotations
вида карты. Например:
if (![mapView.annotations containsObject:annot_from_your_main_array]) {
[newAnnots addObject:annot_from_your_main_array];
}
Сравнение с аннотациями массивом вида карты будет работать только тогда, когда объекты аннотаций в вашем основном массиве фактических аннотаций вы даете на вид карты в addAnnotation:
или addAnnotations:
. Кроме того, когда ваш основной массив «обновляется», он должен добавлять новые аннотации вместо того, чтобы перестраивать весь массив с нуля. Если это так, ссылки на аннотации не совпадают с ссылками в массиве вида карты.
То же самое применяется, если вы удаляете аннотации для обновления. Удаленные аннотации могут быть добавлены во временный список «удалить» (путем проверки того, существуют ли аннотации в массиве вида карты в вашем массиве) и переданы в removeAnnotations:
.
Обратите внимание, что если вы обновите существующие координаты аннотаций в своем основном массиве, представление карты автоматически обновит местоположение булавки до тех пор, пока объект аннотации в вашем массиве реализует метод setCoordinate:
.
- 1. Добавление аннотаций к MKMapview
- 2. Проблемы с удалением аннотаций из MKMapView
- 3. Добавление аннотаций из файла KML в MKMapView
- 4. Консолидация аннотаций на увеличенном MKMapView
- 5. Масштабирование MKMapView для подгонки аннотаций?
- 6. Отображение нескольких аннотаций в MKMapView
- 7. Добавления аннотаций для координат MKMapView
- 8. Режим обновленного массива
- 9. Позиционирование MKMapView для одновременного отображения нескольких аннотаций
- 10. Обновление комментариев аннотаций
- 11. Обновление аннотаций загружены с HTTP
- 12. Обновление аннотаций с помощью ADClusterMapView
- 13. Обновление обновленного отчета - улучшение производительности
- 14. MKMapView - Удаление аннотаций вызывает сбой приложения
- 15. Создание аннотаций в MKMapView с компонентом высоты
- 16. MKMapView: Возьмите несколько аннотаций над другими?
- 17. MKMapView - Добавление аннотаций в фоновом потоке
- 18. Обновление MKMapView до CLPlacemark, возвращенного из CLGeocoder
- 19. Обновление аннотаций MKMapkitview не работает?
- 20. Быстрое обновление местоположения аннотаций
- 21. iOS: умное обновление аннотаций
- 22. перемещение/обновление MKOverlay на MKMapView
- 23. Обновление MKMapView после перемещений буфера
- 24. iPhone MapKit - обновление аннотаций координаты и карта
- 25. setState работает, но обновление обновленного обновления не
- 26. Последнее обновление обновленного времени для материализованного просмотра
- 27. Максимальное количество аннотаций (MKAnnotation), которое можно нарисовать на MKMapView?
- 28. массовое обновление из массива
- 29. Как добавить несколько аннотаций в mkmapview в приложении iphone?
- 30. Triggering segues из аннотаций
Большое спасибо, спасибо, что нашли время, чтобы написать такой углубленный ответ, очень полезный. – fuzzygoat