2016-01-06 27 views
1

我創建了一個使用表格視圖來顯示圖片的應用程序。這些圖像存儲在數據庫中。然而,目前它並不是一個可擴展的應用程序,因爲我只需查詢25張圖像並將它們存儲到數組中並將它們放入表視圖中。如果我有100,000張圖片,這是不實際的。我想要容納大量圖像的是:什麼是在UITableViewController中滾動圖像的最佳設計模式?

1)首先查詢25個圖像並將其存儲在數組中,然後在表格視圖中查看它們。

2)然後,當我向下滾動表格視圖時,我向下滾動時查詢接下來的25張圖像。

3)當我向下滾動過前25張圖像時,我從頭開始刪除前25張圖像。

4)然後,在步驟1再次啓動,直到有數據庫

如果我向上滾動,我只想做相反沒有更多的圖像,查詢過去25幅圖像(記得把它們在課程陣列中以相反的順序)。

我確定這個問題已經解決過,我只是不確定我的解決方案是否可以。你們認爲這是可擴展的嗎?如果沒有,我會遇到什麼問題,以及有什麼更好的方法來做到這一點?感謝您的幫助。

+0

['NSFetchedResultsController'](https://developer.apple.com/library/ios/documentation/CoreData/Reference/NSFetchedResultsController_Class/index.html)是Apple的解決方案。 –

回答

0

一個簡單的模式是當用戶滾動到應用程序的底部時加載更多的圖像,即一旦他們滾動到底部,他們看到一個微調器,並加載下25個圖像。你不需要做任何關於刪除舊圖像的事情,因爲它們已經不在內存中了。這是我見過的許多移動應用程序和我自己的應用程序中使用的模式。

0

您可以爲每個圖像分配索引,每次加載多個圖像(圖像數量等於行數)。當用戶滾動到下:

  • 顯示正在加載的旋轉
  • 獲取最後的圖像的索引,查詢下一個倍數的圖像設置
  • 刷新tableview中,隱藏(停止)加載微調

如果您有圖像的URL路徑,您可以異步加載它,而不會凍結UI。

相關問題