2

我有一个使用 UITableViewCellStyleDefault 样式的 UITableView。我还设置了详细配件:

    cell.accessoryType= UITableViewCellAccessoryDetailDisclosureButton;

我希望代码是这样的,当详细附件被推送时,从而生成委托方法附件ButtonTappedForRowWithIndexPath: ,该特定单元格的图像更改为另一个图像。

我怎样才能做到这一点?我是否需要以某种方式重新创建单元格?

谢谢!

4

5 回答 5

3

不,您只需将其他图像添加到单元格的图像视图中

UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
cell.imageView.image = [UIImage imageNamed:@"IMAGENAME"];
于 2012-04-09T11:38:16.160 回答
3
- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *aCell = [tableView cellForRowAtIndexPath:indexPath];
    // Now You have your sekected cell, you can set the image which you have set on this cell
    UIImageView  *aView = (UIImageView*)[aCell viewWithTag:1];
    // Now change the image of aView
}
于 2012-04-09T11:41:56.737 回答
2

在您的 accessoryButtonTappedForRowWithIndexPath 方法中使用 --

UITableViewCell *cell = [tableView.delegate cellForRowAtIndexPath:indexPath];
cell.accessoryView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yourImage.png"]] autorelease];
于 2012-04-09T11:38:38.967 回答
1

我从来没有这样做过,但我尝试了类似的东西

-accessoryButtonTappedForRowWithIndexPath..{
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    // change the view of cell here
}

只是一个想法,请在您的问题中添加一些您迄今为止尝试过的代码。

于 2012-04-09T11:34:45.467 回答
1

您更改了基础数据结构的图像。之后,在适当的索引路径重新加载单元格。

例如,我假设您的数据是一个简单的 NSArray,其中包含 NSDictionary 对象。字典包含一些键,例如“text”和“image”。在cellForRowAtIndexPath:您将使用适当字典中的值来设置 cell.text 和 cell.image。

所以,在accessoryButtonTappedForRowWithIndexPath:(或者也许你想要didSelectRowAtIndexPath:?),你会做这样的事情:

NSDictionary* dict = [myArray objectAtIndex:indexPath.row];
[dict setValueForKey:@"image":myNewImage];
[self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation: UITableViewRowAnimationAutomatic];

请记住,这是伪代码,未经测试,但会给你如何做的想法。

于 2012-04-09T11:37:45.383 回答