我有這個地圖視圖與一堆疊加。當我點擊主頁按鈕並重新打開它時,所有疊加層消失一秒鐘並立即重新出現。起初我以爲這是我的代碼,但我在任何地方都放置了斷點,我的代碼似乎沒有觸發「重置」。即使mapView:viewForOverlay:
在覆蓋層重新出現之前也不會被調用。MKMapView覆蓋重置appDidBecomeActive
我想也許這是MKMapView
的不可避免的行爲,但它似乎像Maps.app也不這樣做 - 如果你計算一條路線並退出/重新打開應用程序,覆蓋層會一直呆在那裏。
我在想,也許MKMapView在退出時會默認清除所有註解/覆蓋圖,因此在保持後臺運行時佔用的內存更少。有什麼辦法可以避免這種情況?有點像Maps.app嗎?
編輯:here's a small project我放在一起來展示問題。只需在Simulator中啓動它,單擊主頁按鈕,然後重新打開它。你會看到地圖路徑覆蓋層消失了片刻。
你使用的是弧形嗎?弧會在不使用時立即釋放對象,所以在進入背景時,它們會消失,並且一旦它們被使用,它們就會重新出現。這只是一個想法,因爲我已經在背景切換上重置了視圖。 – Simon 2012-03-11 20:56:13
我正在使用ARC,但我的控制器在mapView上保存了一個'strong'引用,它本身應該在其疊加層上保持'strong'引用? – samvermette 2012-03-11 20:59:36
我想是的。對不起,我忍不住。 – Simon 2012-03-11 21:02:34