0

如何在收到特定通知时更新表格视图单元格,而无需重新加载表格数据。通知告诉我需要更新的单元格的 ID。所以我想迭代所有表格单元格并只更新相关的表格单元格而不重新加载它。我怎样才能做到这一点

4

2 回答 2

0

用于[tableView visibleCells]获取显示的所有单元格的列表。遍历此数组以查看是否显示了您需要更新的单元格,然后执行您需要的任何操作。(此方法适用于您重复使用单元格的情况)。

于 2012-08-02T17:41:00.110 回答
0

您可以只使用内置reloadRowsAtIndexPaths:withRowAnimation:而不是试图篡夺框架的功能。这将有效地仅重新加载您要求它的单元格两个而不是整个表格甚至整个部分。

使用某种动画效果重新加载指定的行。

重新加载一行会导致表视图向其数据源询问该行的新单元格。该表在为旧行设置动画时为该新单元格设置动画。如果要提醒用户单元格的值正在更改,请调用此方法。但是,如果通知用户并不重要——也就是说,您只想更改单元格显示的值——您可以获取特定行的单元格并设置其新值。

当在由 beginUpdates 和 endUpdates 方法定义的动画块中调用此方法时,它的行为类似于 deleteRowsAtIndexPaths:withRowAnimation:。UITableView 传递给方法的索引在任何更新之前在表视图的状态中指定。无论动画块中的插入、删除和重新加载方法调用的顺序如何,都会发生这种情况。

在 iOS 3.0 及更高版本中可用。

于 2012-08-02T18:23:43.957 回答