У меня есть MKMapView, и я добавляю к нему некоторые аннотации. Я хочу удалить аннотации один за другим через некоторое время, когда он был добавлен. Мне нужно, чтобы у каждой аннотации была своя продолжительность жизни. Является ли это возможным? Как мне это достичь?MKMapView добавить аннотацию и удалить ее через некоторое время
ответ
Ваш лучший выбор - использовать -(void)removeAnnotations:(NSArray *)annotations
от вашего MKMapView
.
Просто сохраните свою аннотацию где-нибудь, например NSDictionary с {date: annotationObject}, и извлеките ее, когда хотите удалить.
Например:
//Call somewhere to delete after 2 seconds
[self performSelector:@selector(deleteAnnotation:) withObject:annotation afterDelay:2.f]
//this function will remove the annotation from your map
-(void) deleteAnnotation:(id) object{
[self.map removeAnnotations:@[object]];
}
MKMapView имеет removeAnnotation
и removeAnnotations
методы, которые удаляют уже добавлены аннотации.
Если вы хотите, чтобы каждый аннотацию иметь свой собственный срок службы:
Создать
AnnotationLifespanDelegate
протокол с методом для индикации конца жизни, которая принимает аннотацию в качестве параметра (напримерfunc dearAnnotationRIP(annotation : MKAnnotation)
).Создайте пользовательскую MKAnnotation с объектами
lifespan
и и способомstartCountdown
.startCountdown
метод просто запускает таймер с интервалом, равнымlifespan
, и называет делегат методом конца жизни.Реализовать
AnnotationLifespanDelegate
метод представления контроллера и при создании объектов аннотаций, убедитесь, что вы установитеlifespan
иdelegate
и вызватьstartCountdown
метод на аннотации сразу после добавления его в виде карты.В методе конца аннотации жизни удалите аннотацию с карты.
- 1. Как добавить аннотацию в mkmapview
- 2. Как открыть форму и закрыть ее программно через некоторое время
- 3. Удалить анонимных пользователей Firebase через некоторое время
- 4. Уведомление через некоторое время
- 5. JasperReportsViewResolver добавить .html через некоторое время
- 6. MKMapView не принимает аннотацию
- 7. Отредактируйте аннотацию MkMapView
- 8. MKMapView неправильно удаляет аннотацию?
- 9. Неудачная сессия через некоторое время
- 10. file_put_contents через некоторое время
- 11. java.lang.NoClassDefFoundError через некоторое время
- 12. Добавление действия в аннотацию MKMapView
- 13. Автоматическое обновление страницы при ее посещении через некоторое время
- 14. Ошибка WMI через некоторое время
- 15. Скрыть, показать аннотацию на MkMapView
- 16. ESP8266 отключается через некоторое время
- 17. закрыть активность через некоторое время
- 18. Переменная сбрасывается через некоторое время
- 19. снятие изображения через некоторое время
- 20. остановка приложения через некоторое время
- 21. HttpWebRequest.GetResponse() истекает через некоторое время
- 22. RadAjaxLoadingPanel исчезает через некоторое время
- 23. BroadcastReceiver остановился через некоторое время
- 24. Слои исчезают через некоторое время?
- 25. Accelerometr останавливается через некоторое время
- 26. Скрыть подсказку через некоторое время
- 27. Функция завершается через некоторое время
- 28. Сообщение исчезает через некоторое время
- 29. Таймер зависает через некоторое время
- 30. Обработчик останавливается через некоторое время