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 回答