0

我有一个 TableViewController,在运行时动态添加了 5 个单元格。单元格的初始值(cell.detailtext.text)是所有单元格的默认值。现在一旦 viewDidLoad 完成,甚至完成: (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath,现在我需要根据某些条件在运行时更新单元格值。以后如何更新单元格值?

简而言之,我需要在 IOS 的一个函数中实现以下算法

对于 tableView 的每个单元格

cell.detailtext.text = @"新值"

或者

函数(){

单元格 = 索引处的单元格(传递给函数)

cell.detailtext.text = @“新值”(传递给函数)

}

4

3 回答 3

2

当您更新 UITableView 的数据源时,您需要调用reloadData

但这会更新整个表格并有两个问题:

1)如果您有一个大表并且您只更改一个值,那么它的开销很大

2)如果您正在为更新(添加或删除)制作动画,这可能会使您的设备因大量数据而滞后

检查类参考:http: //developer.apple.com/library/ios/#documentation/uikit/reference/UITableView_Class/Reference/Reference.html

或者,如果您只是更新单个单元格,请尝试调用

reloadRowsAtIndexPaths:withRowAnimation:

它在性能方面要好得多,但有一些限制,例如如果您要添加大量数据,则无法应用。

我可以进入更多的情况和细节,但那将超出范围。

于 2012-05-09T04:38:44.200 回答
0

您必须通过为表格视图提供数组值来修改数据。然后你必须使用

[tableView 重载数据]

tableview中更新数据的方法

于 2012-05-09T04:31:01.473 回答
0

使用该方法修改需要显示的值

reloadRowsAtIndexPaths:withRowAnimation:

这会重新加载表格视图中的特定单元格。

于 2016-06-14T09:26:11.763 回答