我有一个使用UITableViewCellStyleDefault样式的UITableView。我也设置了详细配件:
cell.accessoryType= UITableViewCellAccessoryDetailDisclosureButton;
我希望代码能够在按下细节附件时生成委托方法accessoryButtonTappedForRowWithIndexPath :,将该特定单元格的图像更改为另一个图像。
我该怎么做?我是否需要以某种方式重新创建单元格?
谢谢!
答案 0 :(得分:3)
不,您只需将其他图像添加到单元格的imageview中
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
cell.imageView.image = [UIImage imageNamed:@"IMAGENAME"];
答案 1 :(得分: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
}
答案 2 :(得分:2)
在你的accessoryButtonTappedForRowWithIndexPath方法中使用 -
UITableViewCell *cell = [tableView.delegate cellForRowAtIndexPath:indexPath];
cell.accessoryView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yourImage.png"]] autorelease];
答案 3 :(得分:1)
我从来没有这样做过,但我会尝试像
这样的东西-accessoryButtonTappedForRowWithIndexPath..{
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
// change the view of cell here
}
只是一个想法,请在您的问题中添加一些您迄今为止尝试过的代码。
答案 4 :(得分: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];
请记住,这是伪代码,未经过测试,但会让您了解如何操作。