0

我有一个填充的 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?");
}
}
4

1 回答 1

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"];
    }
于 2013-05-19T20:56:55.543 回答