我有一个问题,我有一个UITableViewController
,当视图出现时,我会异步进行一些计算,这应该导致表格中特定行的更新。
在viewWillAppear
函数内,我按以下方式计算需要更新的必要行:
- (void)reloadPaths:(NSMutableDictionary *)bookingsDict
{
NSMutableArray* indexArray = [NSMutableArray array];
int i = 0;
for (NSString *dateKey in self.eventsToShow) {
NSMutableDictionary *venues = [bookingsDict objectForKey:dateKey];
if (venues) {
int j = 0;
NSArray *events = [self.eventsToShow objectForKey:dateKey];
for (DCTEvent *event in events) {
NSString *venueIdString = [NSString stringWithFormat:@"%@", event.eventVenueId];
if ([venues objectForKey:venueIdString]) {
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:j inSection:i];
[indexArray addObject:indexPath];
}
j++;
}
}
i++;
}
[self.tableView reloadRowsAtIndexPaths:indexArray withRowAnimation:UITableViewRowAnimationFade];
}
然而我注意到cellForRowAtIndexPath
函数在此之后从未被调用,导致单元格没有正确更新。不知道问题出在哪里?
编辑:我刚刚注意到,如果我滚动视图使得要更新的单元格不再可见,那么当我重新滚回来时,它就会被更新。有没有办法让它在可见状态下也更新?
indexArray
是否包含有效数据了吗? - Argent