ios - 在不调用 reloadData 的情况下更新 tableView 中的特定单元格

标签 ios objective-c uitableview

我有一个应用程序,其中有一个带有自定义单元格和标题的 UITableview。这些单元格有一个 inputView,因此当它们被选中时,它们将成为第一响应者并允许用户输入数据。 我希望能够在用户更改时动态更新可见的 TableViewCell 和 header 信息。很简单,只需调用 [tableview reloadData]; .. 不幸的是,这会导致输入 View 退出第一响应者并隐藏自己。

有什么方法可以在 UITableview 中获取对单元格本身的引用,以便我可以只更改文本属性? (cellForRow:atIndexPath: 返回一个具有相同属性的新对象,因此不起作用)似乎唯一简单的解决方案可能是每次填充单元格时将单元格引用存储在字典中,并不是真正理想的解决方案。

cellForRowAtIndexPath 实际上就是

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    CustomCell *orderCell;
    static NSString *productCellIdentifier = @"ImageDetailCellIdentifier";
    orderCell = [self.tableView dequeueReusableCellWithIdentifier:productCellIdentifier forIndexPath:indexPath];

//set a bunch of properties orderCell.blah
    return orderCell;
}

最佳答案

根据 UITableView 文档,-cellForRowAtIndexPath: 返回表示表格单元格的对象,如果单元格不可见或返回 nil indexPath 超出范围。

我也是这么记得的。我不认为你的观察是正确的,它返回一个新对象。如果单元格可见,您将捕获它。

关于ios - 在不调用 reloadData 的情况下更新 tableView 中的特定单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23774806/

相关文章:

ios - 如何更改已点击的 UITableViewCell 中的 UILabel

ios - 如何防止 TableView 在 View 后面滚动?

php - iOS 表情符号未正确存储在 MySQL 中

objective-c - 属性 : property 的值类型 Not Acceptable

iphone - 使用 block 回调时如何释放对象

ios - 当我实现 heightForRowAtIndexPath 时,UITableView 单元格相互重叠

ios - 模拟器 10.2.1 命令 + R 在 react native 中不起作用

ios - 如何在 ios 中的 imageview 上进行六边形图像 mask ?

ios - 基于 block 的 KVO : Block-KVO vs THObserversAndBinders vs KVOController

ios - UITableView 单元格标识符字段被禁用