1

メッセージが未読の場合、セル画像を設定するために次のことを行っています

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MessageCell"];

        Message *m = [self.messages objectAtIndex:indexPath.row];

        cell.textLabel.text = m.subject;
        NSString *detail = [NSString stringWithFormat:@"%@ - %@", m.callbackName, m.dateSent];
        cell.detailTextLabel.text = detail;

        if([m.messageRead isEqualToString:@"False"])
            cell.imageView.image = [UIImage imageNamed:@"new.png"];


    return cell;
}

これは、想定されているときに画像を正しく表示しています。ただし、下にスクロールして上にスクロールすると、想定されているかどうかに関係なく、すべての画像が表示されます

4

2 に答える 2

2

セルは再利用されます。したがって、すべての条件に対して各プロパティを設定する必要があります。

if([m.messageRead isEqualToString:@"False"])
    cell.imageView.image = [UIImage imageNamed:@"new.png"];
else
    cell.imageView.image = nil;
于 2012-10-18T22:33:06.653 に答える
1

UITableViewCells は再利用されるため、画像が不要な場合は に設定してくださいcell.imageView.imagenil

if([m.messageRead isEqualToString:@"False"]) {
    cell.imageView.image = [UIImage imageNamed:@"new.png"];
} else {
    cell.imageView.image = nil;
}
于 2012-10-18T22:34:41.220 に答える