更新uitableviewcell中的标签文本而不重新加载整个表

时间:2014-10-12 13:52:38

标签: ios objective-c iphone uitableview

我正在构建一个应用程序,在两个不同的部分列出所有实时和今天(不是实时)匹配:

section 0
live 1
live 2
section 1
today 1 (not live yet)
today 2
.....

每个表格单元格代表其中列出的两个球队的匹配。如果是现场比赛,我有两个标签(一个对应于每个球队),显示实时比分。

对于直播比赛,因为在特定运动类别中可以有任意数量的现场比赛,我有两个标签,显示每个时间在任何给定时刻的得分。由于实时比赛中的分数经常变化,所以我使用套接字来获取数据,当数据通过回调到达套接字时,我需要更新标签中每个匹配单元的分数标签。

如何在不重新加载整个表格的情况下获取每个单元格的标签实例并更新其文本?有没有办法保持所有标签的参考,因为单元格是动态原型?

如何实施此功能?请注意,在任何时间点,比赛可能会变为现场,从今天开始转为现场,反之亦然(如果比赛取消)。

2 个答案:

答案 0 :(得分:2)

尝试

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

indexPaths采用一个数组,其中包含要重新加载的行的索引路径,例如如果您只想重新加载第一部分调用中的第一行:

[self.tableView reloadRowsAtIndexPaths:[NSIndexPath indexPathForRow:0 inSection:0] withRowAnimation:UITableViewRowAnimationNone]

答案 1 :(得分:0)

Swift版

转到您拥有tableView的类,然后执行以下操作:

let singleIndexPath = IndexPath(row: 0, section: 0)
self.tableView.reloadRows(at: [singleIndexPath], with: .none)