从void更改表中的特定行

时间:2013-05-19 20:14:02

标签: ios uitableview

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

1 个答案:

答案 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"];
    }