2012-08-02 56 views
0

如何在接收到特定通知時更新tabelview單元格,而無需重新加載表格數據。通知會告訴我需要更新的單元的ID。所以我想迭代所有表格單元格,只更新相關的表格單元格而不重新加載它。我如何做到這一點通知時更新表格單元

+0

你不想只重新填充表格?你試過迭代嗎?我個人認爲這是一個糟糕的解決方案。 – 2012-08-02 17:09:32

+0

「重新加載」和「更新」單元之間的區別是什麼? – Julien 2012-08-02 17:13:53

+0

@Julien重新加載將重新加載所有表格單元格。這很煩人。只更新一個表格是更好的解決方案。 – nath 2012-08-02 17:23:23

回答

0

使用[tableView visibleCells]得到所有顯示的單元格的列表。遍歷這個數組,看看你需要更新的單元格是否顯示,然後做任何你需要的。 (這種方法是如果你重複使用單元格)。

0

您可以使用內置的reloadRowsAtIndexPaths:withRowAnimation:而不是試圖篡奪框架的功能。這將有效地只重新加載你要求的單元格,而不是整個表格,甚至整個部分。

使用某種動畫效果重新載入指定的行。

重新加載行會導致表視圖向其數據源詢問該行的新單元。這個表格爲新的單元格提供了動畫,因爲它可以動畫化舊的行。如果要提醒 用戶單元格的值正在更改,請調用此方法。但是,如果通知 用戶並不重要,即只需更改單元格顯示的值,則可以獲取特定行的單元格並將 設置爲其新值。

在beginUpdates和endUpdates方法定義的動畫塊中調用此方法時,其行爲與 的行爲相似deleteRowsAtIndexPaths:withRowAnimation :.在任何更新之前,在表視圖 的狀態中指定UITableView 傳遞給該方法的索引。無論 插入,刪除和重新加載方法調用在動畫 塊中的順序如何,都會發生這種情況。

適用於iOS 3.0及更高版本。