使用默认单元格值加载一次视图后如何更新 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 中的单元格值?