2012-08-16 138 views
2

所以我有一個UIScrollView與UIPageControl有一堆MKMapViews(大多是15個不同的地圖)。一旦這個視圖加載,這個應用程序真的很慢,在使用幾分鐘後我得到一個內存警告。我在樂器中看過它,地圖佔據了瘋狂的很大一部分記憶。有時甚至達到200MB。我能想到的一件事是重用mapViews。但由於視圖的結構如何,編碼複雜度增加。任何建議如何我可以提高性能?MKMapView的內存使用率非常高

這是我的應用程序是如何構成的:

我有有,我用了水平滾動一個UIScrollView一個視圖控制器。在scrollView中,我從包含mkmapview的視圖控制器數組中讀取子視圖。

希望有道理!我使用Apple的pageControl示例應用程序作爲編碼參考點,因此設計大致相似。

在此先感謝!

編輯:所以我嘗試添加mapView的單個實例,並更改滑動的座標。它仍然需要大量的內存。

+0

ios6中的mkmapview在內存使用方面無法管理IMO ::查看http://stackoverflow.com/questions/15701990/mkmapview-memory-issue-in-ios-6-0-or-later/15702093 #15702093 – 2013-03-29 11:17:20

回答

0

要在滾動視圖中滾動任意數量的頁面,您只需要兩個內容視圖,而不是15個。這是因爲在任何給定時間永遠不會有兩個以上的內容視圖可見。您可以在UIScrollView代表的-scrollViewDidScroll:方法中重新排列您的內容。

+0

但mapView是什麼導致內存警告。如果我不添加mapView,應用程序的滾動和性能就好了。 – Sohan 2012-08-16 09:35:05

+0

我懷疑使用單個地圖視圖會導致嚴重的資源問題。數百個應用程序正在使用這個類。此外,只要處理得當,內存警告不一定是問題,即您應該釋放不需要的資源。 – gcbrueckmann 2012-08-16 21:44:40

+0

在這種情況下,我可能在其他地方做了一些災難性的錯誤:) 將檢查。謝謝! – Sohan 2012-08-17 11:00:06