2011-01-05 58 views
2

我想創建一個UITableView更多的行自動加載,當我滾動到列表的底部。這通常就像亞馬遜iPhone上的應用程序的搜索功能。它一次加載大約20行,當我滾動到前20個的末尾時,接下來的20個會自動加載。一旦加載,它仍然在內存中。我沒有考慮最後一行在App store應用中顯示「加載更多項目」的選項。滾動以加載更多單元格像UITableView亞馬遜應用

這是我想要實現的:我當前的應用程序線程需要大約8-15秒來加載UITableView(列表中的任何地方從0-50項)。即使只有1行,也需要大約8秒。我想讓這個過程看起來更快。我的屏幕可以在任何給定的時間顯示7行的最大,所以我想如果我能在同一時間做這個負載8-10行,並能夠在實現這一點,讓我們說,3-4秒,那麼其他項目可以隨着用戶一直向下滾動而加載。因此,第一次加載表格的速度似乎是現在的兩倍。

我一直在尋找「拉刷新」之類的Tweetie2應用程序,我也希望在GitHub上Three20代碼,但我也不太清楚如何讓這個實現像亞馬遜的應用程序。

主要關注如何使其加載速度更快,而無需額外的用戶輸入。

任何幫助將不勝感激。

回答

18

你有沒有考慮使用的UITableViewDelegate方法:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath 

如果保留最後一個單元格的索引的知識,你已經加載,並且如果你靠近滾動到該小區,開始異步請求裝入更多的行。

+0

謝謝Shiun,會探討這個並回復。 – Anand 2011-01-06 00:00:26

+1

Anand,您應該將此答案標記爲「已接受」。 – Stavash 2012-04-04 08:12:46

+0

@Shiun一旦你完成加載更多行的異步請求,你會做什麼?我想防止重新加載TableView導致的閃爍問題。 – Alan 2016-02-19 20:55:26