2011-04-20 30 views
0

我添加了一些從.net Web服務器獲取的圖像和消息。如何在平滑滾動的情況下向UItableview添加新行

我每3秒刷新一次數據。

3秒後,我收到新消息。我需要在UITableview的頂部添加這些消息和圖像。

喜歡在twitter中添加消息,google realtime

對於那裏我發現insertRowsAtIndexPaths:withRowAnimation:而不是重新加載表視圖。

但我不明白我該如何使用此insertRowsAtIndexPaths:withRowAnimation:方法。

如果它是正確的任何人請其他明智的請張貼一些代碼,請爲此提出更好的方法。

謝謝你提前。

+0

使用insertRowsAtIndexPaths:withRowAnimation從UITableView – Jhaliya 2011-04-20 10:57:25

回答

1

您只需創建一個包含要插入的新行的索引路徑的數組(+[NSIndexPath indexPathForRow:inSection:]),然後將該數組傳遞給insertRowsAtIndexPaths:withRowAnimation:

然後,表視圖將調用相應的數據源方法(tableView:cellForRowAtIndexPath:等)以向數據源詢問新行的數據。因此,當您撥打insertRowsAtIndexPaths:...時,您的數據源必須已經包含新行的數據。就是這樣。

1

insertRowsAtIndexPaths:withRowAnimation:在通過 索引路徑的數組識別的 位置接收機 插入行,提供選項以動畫 插入。

  • (無效)insertRowsAtIndexPaths:(NSArray的 *)indexPaths withRowAnimation:(UITableViewRowAnimation)動畫 參數indexPaths NSIndexPath對象數組每個代表 行索引和區段索引 一起識別在表中的行 查看。動畫一個常量,要麼 指定的動畫類型爲 在插入單元格時執行,或者 請求不動畫。有關常數的說明,請參見「表格單元 插入和刪除動畫」( )。 討論UITableView立即調用 相關代理和數據源 方法獲取 單元格和其他內容的可見單元格。

注意:此方法的行爲時 它被稱爲在動畫塊 由beginUpdates和 endUpdates方法來定義。 UITableView推遲 任何插入的行或部分 ,直到它處理了 刪除的行或部分。無論 插入和刪除方法調用的順序如何,此 都會發生。 這不同於插入或刪除 可變數組中的項目,其中 操作可能會影響用於連續插入或 刪除操作的數組索引 。有關此 主題的更多信息,請參閱 iOS的表視圖編程指南中的「批插入和 刪除行和分節」。

狀況可用在IOS 2.0和 以後。

docs

首先,你需要生成indexPaths陣列。要生成它們,你可以使用

+ (NSIndexPath *)indexPathForRow:(NSUInteger)row inSection:(NSUInteger)section; 

文檔here

而且你必須更新數據源陣列和numberOfRowsInSection必須返回正確的值舊值+ numberOfAddedRows]。

+0

可以請你張貼一些示例代碼 – Maheshbabu 2011-04-20 11:27:33

+0

感謝您的具體鏈接到文檔 – 2015-07-29 05:14:57

相關問題