У меня есть этот вид карты с кучей накладок. Когда я нажимаю кнопку «домой» и снова открываю ее, все накладки исчезают на секунду и сразу появляются снова. Сначала я думал, что это мой код, который это делает, но я поставил точки останова почти везде, и ни один из моих кодов, похоже, не запускает «перезагрузку». Даже mapView:viewForOverlay:
не вызывается перед повторным появлением оверлея.Накладки MKMapView сбрасываются на appDidBecomeActive
Я думал, что это неизбежное поведение MKMapView
, но похоже, что Maps.app тоже не делает этого - если вы вычислите маршрут и закроете/откройте приложение, наложения остаются там все время ,
Я думаю, что, возможно, MKMapView очищает все свои аннотации/оверлеи по умолчанию при выходе, поэтому требуется меньше памяти при сохранении фонового рисунка. Есть ли способ избежать этого? Что-то вроде Maps.app делает?
EDIT: here's a small project Я собрал, чтобы продемонстрировать проблему. Просто запустите его в Simulator, нажмите кнопку «Домой» и снова откройте его. На мгновение вы увидите, что наложение пути карты исчезает.
Вы используете дугу? arc выпустит объекты, как только они не будут использованы, поэтому при переходе на задний план они исчезнут, и как только они будут использованы, они снова появятся. это просто мысль, так как у меня есть виды, которые переустанавливаются на фоновой коммутатор. – Simon
Я использую ARC, но мой контроллер держит ссылку «strong» на mapView, которая сама должна содержать ссылку «strong» на своих оверлеях no? – samvermette
Думаю, да. Мне жаль, что я не мог помочь. – Simon