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];」と書かないと、すべてが完全に正常になりますが、そうすると、セルはあるように見えますが、表示されていません(テーブルビューにあるセルの数に応じてセルセパレータが消えます)

更新された情報を表示するためにユーザーがビューから出てビューを再度読み込む必要がないように、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 に答える