【问题标题】:How to update the values of a UITableView cells(cell.detailTextLabel.text) after the view is loaded once with default cell values使用默认单元格值加载一次视图后如何更新 UITableView 单元格(cell.detailTextLabel.text)的值
【发布时间】: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"(传递给函数)

}

【问题讨论】:

    标签: ios uitableview


    【解决方案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:
        

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

        【讨论】:

          猜你喜欢
          • 2011-07-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-05-20
          • 1970-01-01
          • 1970-01-01
          • 2023-03-19
          相关资源
          最近更新 更多