2016-09-10 72 views
0

我已經在該頁面上找到了包含該主題的條目,並且還提供了一個提供該問題教程的網站。但沒有什麼效果很好。預加載tableView單元格並防止重新加載

教程悲傷,我應該加倍我的tableView的高度,以便更早加載細胞,但具有較高的tableView我從來沒有達到過的最後一個單元格。

我的問題是,我使用tableView來顯示我的應用程序mainpage。這個主頁顯示每次一個話題,如果它的話題是必要的話,它會顯示一個帶有地圖的單元格,一個帶有圖片,有時不帶。現在的問題,如果我試圖滾動到我的看法總是滯後,因爲它加載地圖或此圖片。並再次滾動,因爲已加載的單元格已被刪除。我使用了tableView,因爲可以切換細胞類型(mapCell,pictureCell,textCell)。

我明白了這個功能,因爲內存問題,但對我來說它不算多,這將是更好的,如果我的所有細胞中預裝,並留在內存中,直到我改變了話題。

是否有swifty的方式來告訴我的tableView有這種行爲?

非常感謝和很好的問候

回答

0

聲明一個單元格數組。

無論何時只要更改主題,請按照以下步驟操作。

  1. 清除您陣列

  2. 創建和配置所有單元添加到您的陣列。

  3. 返回這些細胞使用行索引數據源的方法。這裏不要使用tableview的出隊方法。

+0

哦,男孩,我很尷尬!那簡單多了!我非常感謝你! – kuemme01

+0

這有效,但它不是內存高效的。更好地預加載模型數據,並仍使用單元出隊方法。 –

1

我會建議一種不同的方法。設置您的表格視圖控制器以在您的單元格中安裝佔位符圖像,觸發緩存到磁盤的異步下載,然後使用下載的內容更新單元格(如果下載完成後仍然可見)。

有各種各樣的第三方框架,爲您做所有這些家務。

+0

是的,另一種方法,但我認爲它沒關係!我有一個30-60 mb之間的記憶或者是那麼多? – kuemme01

+0

在較新的設備上,30-60 mb應該不成問題。我們正在談論多少個表格視圖條目,以及這些圖像有多大? –

+0

iOS 9運行於4s及以上版本。這是您目前的最低規格設備。 iOS 10將降低4s,並且只能運行在5以上。 –