用它的indexPath.row更改单元格图像

时间:2013-05-24 19:44:36

标签: ios objective-c cocoa-touch uitableview

目前我正在使用:

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

更改单元格的图像。

但是,如果我只知道indexPath.row?

,我怎么能改变呢?

我试过了:

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

4 个答案:

答案 0 :(得分:2)

  UITableVieCell *cell = [self.tableView cellForRowAtIndexPath:0];
  cell.imageView.image = ...

答案 1 :(得分: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应该可以解决问题。

答案 2 :(得分:0)

你也可以这样做,

((UITableViewCell *)[self.tableView cellForRowAtIndexPath:0]).imageView.image = [UIImage imageNamed:@"image.png"];

答案 3 :(得分:0)

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

[self.tableView reloadRowsAtIndexPaths:withRowAnimation:]

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