0
    - (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];”,一切都会变得绝对正常,但如果我这样做,似乎单元格在那里但它没有被显示(单元格分隔符根据表格视图的单元格数量消失)

我需要重新加载数据,这样用户就不需要离开视图并再次加载视图来显示更新的信息。

有什么建议吗?

4

2 回答 2

3

您不需要在[self.tableView reloadData];里面添加cellForRowAtIndexPath,这是绝对错误的,因为调用reloadData会再次调用cellForRowAtIndexPath,正如您所经历的那样会产生非常奇怪的问题

一般来说,[self.tableView reloadData];当您想更改所有或部分内容时,您通常会调用UITableView

于 2012-06-24T11:07:31.553 回答
1

创建一个函数来检查新数据是否可用(可能实现刷新按钮/拉动刷新)。如果有新数据可用,请致电[self.tableView reloadData];

于 2012-06-24T11:17:27.690 回答