我有一个填充的TableView,我想改变图像。当我在cellForRowAtIndexPath中时,我可以使用:
更改它cell.imageView.image = [UIImage imageNamed:@"image.png"];
但我无法弄清楚如何在虚空中做同样的事情,我试过了:
[self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:row inSection:0]].imageView.image = [UIImage imageNamed:@"image.png"];
但它根本不会改变图像。
谢谢, / DSDeniso
编辑:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = nil;
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
_row = indexPath.row;
[self changeImage];
}
- (void)changeImage{
UITableViewCell * cell = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:_row inSection:0]];
if(cell)
{
cell.imageView.image = [UIImage imageNamed:@"image.png"];
} else {
NSLog( @"why is cell null? Did I set row properly?");
}
}
答案 0 :(得分:1)
只需将单元格传递给方法
即可- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = nil;
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
_row = indexPath.row;
[self changeImageForCell:cell];
}
- (void)changeImageForCell:(UITableViewCell*)cell{
cell.imageView.image = [UIImage imageNamed:@"image.png"];
}