2014-10-12 87 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) 
相關問題