在表格视图单元格中随机更改图像

时间:2015-06-09 10:31:31

标签: ios objective-c uitableview uiimageview

我希望使用以下内容更改UIImageView内的特定UITableViewCell

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [self.tableView beginUpdates];
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    UYLTextCell *textCell = (UYLTextCell *)cell;
    textCell.selected = YES;
    //get and show the image at selected cell
    textCell.testImage.image = [UIImage imageNamed:@"image280280.jpg"];
    //[tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
    [self.tableView endUpdates];
}

但是发生的事情是,即使没有点击,某些单元格的图像也会显示。

1 个答案:

答案 0 :(得分:0)

表视图重用单元格。当单元格在屏幕外滚动时,它将被添加到队列中,并将重新用于下一个要在屏幕上滚动的单元格。这意味着tableView:cellForRowAtIndexPath:中的单元配置代码应足以正确配置任何单元,包括先前在不同indexPath处选择的单元。在tableView:didSelectRowAtIndexPath:中将选定的索引路径存储在属性中,并使用该属性在tableView:cellForRowAtIndexPath:中配置您的单元格。无论是否选择了单元格,都需要在tableView:cellForRowAtIndexPath:中设置图片(除非您在自定义单元格中实施prepareForReuse)。