2015-01-16 75 views
0

我有基於參數返回數據的後端。所以參數包括偏移量限制鍵。將表格滾動至底部後,用新數據更新UITableView的數據源

如果你知道的話,它就像分頁一樣。所以根據偏移量和限制服務器從數據庫中返回適量的項目。

第一次運行時,我從0偏移位置加載30個項目。然後我需要加載更多的項目後,我滾動我的表和更新數據源。

我已經找到了solution,但是當我向上滾動,然後向下滾動時,問題將不會重複數據。也許已經有解決方案或例子。當然,我可以寫一些我的「輪子」,但也許有人可以建議最好的算法,也許也可以使用滾動視圖委託它不是很好,而不是這可能更好地使用cellForRowAtIndexPath來確定例如一些接近結束的單元格的細胞,然後更新它。

回答

2

我已經解決了這個同樣的問題,使用willDisplayCell和下面的控制更多的項目是否已加載兩個條件:

  • 使用條件檢查從API加載的項目的「總」數比行已經在UITableView
  • 數量越多使用條件檢查「行顯示」是在數大於行數已經加載

基本上,它是一個SLI ght這個答案的修改:https://stackoverflow.com/a/19448220/209867

+0

謝謝你的答案,一件事,不確定的鏈接。所以有一些我無法理解的變量和條件,如_noMoreDataAvailable。這個想法很好,但接下來的問題,無論如何都會出現雙重加載相同的數據。或者,也許我錯過了什麼 –

+0

我只是使用這個if(indexPath.row == self.items.count - 1)和everting在willDisplayCell中可以正常工作 –

+0

同樣不錯的建議使用willDisplayCell –