在 iOS 中重新加载特定的 UITableView 单元格

Posted

技术标签:

【中文标题】在 iOS 中重新加载特定的 UITableView 单元格【英文标题】:Reload specific UITableView cell in iOS 【发布时间】:2011-08-12 13:26:18 【问题描述】:

我有一个UITableView。我想根据所做的选择更新表数据。现在我使用[mytable reloadData];我想知道是否有任何方法可以更新所选的特定单元格。我可以使用 NSIndexPath 或其他方式进行修改吗?有什么建议吗?

谢谢。

【问题讨论】:

【参考方案1】:

对于 ios 3.0 及以上版本,您只需调用:

- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation;

例如,要重新加载第 2 节的第 3 行和第 3 节的第 4 行,您必须这样做:

// Build the two index paths
NSIndexPath* indexPath1 = [NSIndexPath indexPathForRow:3 inSection:2];
NSIndexPath* indexPath2 = [NSIndexPath indexPathForRow:4 inSection:3];
// Add them in an index path array
NSArray* indexArray = [NSArray arrayWithObjects:indexPath1, indexPath2, nil];
// Launch reload for the two index path
[self.tableView reloadRowsAtIndexPaths:indexArray withRowAnimation:UITableViewRowAnimationFade];

【讨论】:

我不熟悉索引路径。能不能详细说一下。 NSIndexPath 顾名思义就是一个索引。索引由 2 个组件行和部分组成。您可以使用 [NSIndexPath indexPathForRow:(NSUInteger) inSection:(NSUInteger)]; 创建一个 每个部分可以有多行。例如,在 iPod MP3 播放器中,每个字母都有一个部分。每个部分都包含几位艺术家。我已经编辑了我的原始代码以向您展示如何操作。【参考方案2】:

您还可以获取对 UITableViewCell 对象的引用并更改其标签等。

UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
cell.textLabel.text = @"Hey, I've changed!";

【讨论】:

【参考方案3】:

我想你正在寻找UITableView的这种方法:

 - (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation

【讨论】:

以上是关于在 iOS 中重新加载特定的 UITableView 单元格的主要内容,如果未能解决你的问题,请参考以下文章

如何在swift 3中重新加载没有动画的特定单元格?

重新加载并滚动到特定的集合视图单元格

如何在 UIView swift 中重新加载特定的子视图?

如何在特定时间自动重新加载网页?

iOS 选择要在表格中显示的特定条目

使用新数据搜索和重新加载 TableView 记录