2014-10-12 85 views
1

我建立列出的应用程序的所有活动今天(非实时)在两个不同的部分为匹配:更新标签文本而不用重新加载整个表

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

每个表格单元格代表两个比赛在其中列出的团队。如果是实况比赛,我有两个标签(每个队伍对应一个)显示实时比分。

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

如何获取每个单元格的标签实例并在不重新加载整个表格的情况下更新其文本?由于单元格是动态原型,有没有办法维护所有标签的引用?

我该如何去实现这个功能?请注意,在任何时间比赛都可能成为现场直播,并从今天转移到现场,反之亦然(如果比赛取消)。

回答

2

尝试

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

indexPaths采用包含要重新加载的行的索引路径的数组,所以例如如果要重新加载只在第一行的第一区间调用:

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

我需要使用以下来使它工作: NSMutableArray * indexPathArr = [[NSMutableArray alloc] init]; [indexPathArr addObject:indexPath]; 然后调用它: [self.tableView reloadRowsAtIndexPaths:indexPathArr withRowAnimation:UITableViewRowAnimationNone]; 和它在iOS 9.1(8.0+)中的魅力一样,谢谢! – 2015-11-03 17:50:25

0

斯威夫特版本

转到你有你的tableView和类执行以下操作:

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