2014-03-14 89 views
0

我只是一個相對較新的iPhone程序員,所以希望這是有道理的。快速加載MKITView到UITableViewCell

我在storyboard中創建了UITableView,並且顯示正確。我創建了兩種不同類型的原型表格視圖單元格。一個只是一個簡單的單元格,使用「Left Detail」風格顯示文本,另一個單元格包含MKMapView和一個工具欄。我創建了一個地圖的單個實例,其餘所有單元都是簡單的文本單元格。

我遇到的問題是當表格視圖最初顯示時,包含地圖的UITableViewCell不在屏幕上。當我向下滾動時,用戶界面在單元格加載時暫停。基於儀器,似乎時間花在[MKMapView initWithCoder]上,但我不知道有什麼方法在離開它之前加載原型單元。

以前地圖單元格是在摺疊之前,所以在我做任何滾動之前加載。現在我已經重新安排了一些東西,它稍後加載並導致延遲。

有沒有什麼辦法可以預先加載包含MKMapViewUITableViewCell,或者將MKMapView加載到背景中?

+0

是地圖用戶迭代?你的目標> = 7.0,還是你也支持6? – n00bProgrammer

+0

地圖是用戶交互式的。此外,它目前實際上只是一個個人項目,所以目前的目標是大於等於7.0,但如果我看到需求可能會有所改變。 –

+0

另外,我確實注意到,當我在設備上獨立運行應用程序時,性能幾乎可以接受。當我使用Xcode調試器運行它時,速度變慢更加明顯。 –

回答

2

您可以在之前預先加載MKMapView視圖實例,將其作爲子視圖添加到cellForRowAtIndexPath方法中的單元格中。這樣地圖視圖在顯示單元格之前有一段時間才能加載。

+0

這是否意味着我應該從原型單元格中移除MKMapView,並在將其顯示在cellForRowAtIndexPath中時將它添加進去?另外,如果我創建地圖,它將不會顯示,直到我真正調用addSubview?我昨天在這條路上取得了一些進展,但還沒有完成我的改變。 –

+0

@Mike是的..我猜你只有一個地圖視圖來顯示,這種方法適用於此。我不知道地圖視圖不加載,直到它被添加爲子視圖。如果是這樣的話,那麼你暫時將它作爲子視圖添加到一些不可見的小框架大小的視圖中。稍後,您可以將其切換到一個你的單元格。 – Adithya

+0

感謝您的幫助。現在似乎更快一點。我花了一段時間才弄清楚了代碼,所以對於慢速響應感到抱歉。 –