- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
}
[cell setBackgroundColor:[UIColor lightGrayColor]];
cell.textLabel.textColor = [UIColor lightTextColor];
cell.textLabel.backgroundColor = nil;
cell.detailTextLabel.textColor = [UIColor darkGrayColor];
cell.detailTextLabel.backgroundColor = nil;
// Get list of local notifications
NSArray *notificationArray = [[UIApplication sharedApplication] scheduledLocalNotifications];
UILocalNotification *notif = [notificationArray objectAtIndex:indexPath.row];
// Display notification info
[cell.textLabel setText:notif.alertBody];
NSDateFormatter *format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"MMM dd 'at' HH:mm"];
NSString *dateString = [format stringFromDate:notif.fireDate];
NSString *textData = [[NSString alloc]initWithFormat:@"%@",dateString];
[cell.detailTextLabel setText:textData];
//[notif.fireDate description]
[self.tableView reloadData];
return cell;
}
如果我不写“[self.tableView reloadData];”,那么一切都绝对正常,但如果我这样做,似乎单元格在那里但它没有被显示(单元格分隔符根据tableview的单元格数量消失有)
我需要重新加载数据,这样用户就不需要离开视图并再次加载视图来显示更新的信息。
有什么建议吗?
答案 0 :(得分:3)
您不需要在[self.tableView reloadData];
内添加cellForRowAtIndexPath
,这是绝对错误的,因为调用reloadData
会再次调用cellForRowAtIndexPath
,因为您经历过会产生非常奇怪的问题< / p>
一般情况下,只要您想要更改[self.tableView reloadData];
UITableView
答案 1 :(得分:1)
创建一个函数来检查新数据是否可用(可能实现刷新按钮/拉动刷新)。如果有新数据,请致电[self.tableView reloadData];
。