我希望使用以下内容更改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];
}
但是发生的事情是,即使没有点击,某些单元格的图像也会显示。
答案 0 :(得分:0)
表视图重用单元格。当单元格在屏幕外滚动时,它将被添加到队列中,并将重新用于下一个要在屏幕上滚动的单元格。这意味着tableView:cellForRowAtIndexPath:
中的单元配置代码应足以正确配置任何单元,包括先前在不同indexPath处选择的单元。在tableView:didSelectRowAtIndexPath:
中将选定的索引路径存储在属性中,并使用该属性在tableView:cellForRowAtIndexPath:
中配置您的单元格。无论是否选择了单元格,都需要在tableView:cellForRowAtIndexPath:
中设置图片(除非您在自定义单元格中实施prepareForReuse
)。