使用默认单元格值加载一次视图后如何更新 UITableView 单元格(cell.detailTextLabel.text)的值

Posted

技术标签:

【中文标题】使用默认单元格值加载一次视图后如何更新 UITableView 单元格(cell.detailTextLabel.text)的值【英文标题】:How to update the values of a UITableView cells(cell.detailTextLabel.text) after the view is loaded once with default cell values 【发布时间】:2012-05-09 04:27:13 【问题描述】:

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

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

tableView 的每个单元格

cell.detailtext.text = @"新值"

函数()

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

cell.detailtext.text = @"new Value"(传递给函数)

【问题讨论】:

【参考方案1】:

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

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

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

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

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

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

reloadRowsAtIndexPaths:withRowAnimation:

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

我可以讨论更多的情况和细节,但这超出了范围。

【讨论】:

【参考方案2】:

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

[tableView reloadData]

tableview中更新数据的方法

【讨论】:

【参考方案3】:

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

reloadRowsAtIndexPaths:withRowAnimation:

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

【讨论】:

以上是关于使用默认单元格值加载一次视图后如何更新 UITableView 单元格(cell.detailTextLabel.text)的值的主要内容,如果未能解决你的问题,请参考以下文章

如何更新 UWP Microsoft Toolkit DataGrid 中的单元格值?

如何根据另一列的单元格值由其他列动态更新A列

UITableView 滚动离开屏幕时清除单元格值

如何在列中搜索多个字符串并更新单元格值?

POI - 如何将单元格值设置为日期并应用默认Excel日期格式?

加载图像后更新单元格