2012-08-02 57 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及更高版本。