目前我正在使用:
cell.imageView.image = [UIImage imageNamed:@"image.png"];
更改单元格的图像。
但是如果我只知道 indexPath.row,我怎么能改变它呢?
我试过了:
[self.tableView cellForRowAtIndexPath:0].imageView.image = [UIImage imageNamed:@"image.png"];
目前我正在使用:
cell.imageView.image = [UIImage imageNamed:@"image.png"];
更改单元格的图像。
但是如果我只知道 indexPath.row,我怎么能改变它呢?
我试过了:
[self.tableView cellForRowAtIndexPath:0].imageView.image = [UIImage imageNamed:@"image.png"];
尝试
UITableVieCell *cell = [self.tableView cellForRowAtIndexPath:0];
cell.imageView.image = ...
你的问题到底是什么?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
应该可以解决问题。
你也可以这样做
((UITableViewCell *)[self.tableView cellForRowAtIndexPath:0]).imageView.image = [UIImage imageNamed:@"image.png"];
您应该编写cellForRowAtIndexPath以便它可以确定要显示的图像,并调用
[self.tableView reloadRowsAtIndexPaths:withRowAnimation:]
而不是直接调用cellForRowAtIndexPath。您永远不应直接调用此方法,因为如果您使用排队的单元格,更改将不会是永久性的。使您的cellForRowAtIndexPath方法足够聪明,以确定要显示的内容,并在 indexPath 处重新加载行。