0

目前我正在使用:

cell.imageView.image = [UIImage imageNamed:@"image.png"];

更改单元格的图像。

但是如果我只知道 indexPath.row,我怎么能改变它呢?

我试过了:

[self.tableView cellForRowAtIndexPath:0].imageView.image = [UIImage imageNamed:@"image.png"];
4

4 回答 4

2

尝试

  UITableVieCell *cell = [self.tableView cellForRowAtIndexPath:0];
  cell.imageView.image = ...
于 2013-05-24T20:11:46.253 回答
1

你的问题到底是什么?How can i change it if i only know the indexpath.row?这个问题没有意义。更改某个单元格所需的只是indexPath.

UITableVieCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
cell.imageView.image = [UIImage imageNamed:@"myImage"];

这段代码与@JMD 有点不同。他只会更改第一个单元格的图像。如果您想要每个单元格,cellForRowAtIndexPath将为每个新创建的单元格调用。因此,插入indexPath.row而不是0应该可以解决问题。

于 2013-05-24T20:38:29.397 回答
0

你也可以这样做

((UITableViewCell *)[self.tableView cellForRowAtIndexPath:0]).imageView.image = [UIImage imageNamed:@"image.png"];
于 2013-05-25T04:14:25.263 回答
0

您应该编写cellForRowAtIndexPath以便它可以确定要显示的图像,并调用

[self.tableView reloadRowsAtIndexPaths:withRowAnimation:]

而不是直接调用cellForRowAtIndexPath。您永远不应直接调用此方法,因为如果您使用排队的单元格,更改将不会是永久性的。使您的cellForRowAtIndexPath方法足够聪明,以确定要显示的内容,并在 indexPath 处重新加载行。

于 2013-07-25T14:04:42.400 回答