我有一个聊天应用程序,我想在其中显示在线成员和离线成员。现在我为在线成员添加一个绿点作为像这样的单元格图像:
UIImage *cellImage = [UIImage imageNamed:@"green.png"];
cell.imageView.image = cellImage;
[cell.imageView setTag:102];
//NSStringEncoding encoding=NSASCIIStringEncoding;
cell.imageView.frame=CGRectMake(0,0,13,13);
cell.imageView.bounds=CGRectMake(0,0,13,13);
[cell.imageView setClipsToBounds:NO];
现在当用户离线时,我想将此图像更改为红色。现在,我正在触发功能中删除表格视图中离线的用户:
[self.tableView beginUpdates];
[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:[channel.memberIDs indexOfObject:memberID] inSection:0]]
withRowAnimation:UITableViewRowAnimationTop];
[self.tableView endUpdates];
但现在我不想做删除过程。我想将图像更改为我所拥有的red.png
。谁能告诉我怎么办?
答案 0 :(得分:1)
这可以通过以下方式实现:
cellForRowAtIndexPath:
中检查用户是在线还是离线,并根据该图像将图像分配给imageView。[yourTableView reloadData];
答案 1 :(得分:0)
NSArray *cellArray = (NSArray *) [[NSArray arrayWithObject:[NSIndexPath indexPathForRow:[channel.memberIDs indexOfObject:memberID] inSection:0]] ];
for (int i = 0 ;i < [cellArray count] ;i++) {
NSIndexPath *indexPath = [cellArray objectAtIndex:i];
UITableViewCell *cell = [ self.tableView cellForRowAtIndexPath:indexPath];
UIImage *cellImage = [UIImage imageNamed:@"red.png"]; //image changed to red
cell.imageView.image = cellImage;
}
[self.tableView reloadData];
此代码应将单元格图像数组更改为红色图像。要更改单个单元格图像(即,如果不需要单元格数组),请删除for循环并更改
NSIndexPath *indexPath = [cellArray objectAtIndex:0];