我有以下代码来创建单元格并向其添加图像
UIImageView* MyImage =[[UIImageView alloc]initWithFrame:CGRectMake(100,10,40,40)];
[MyImage setImage:[UIImage imageNamed:[imageArray objectAtIndex:indexPath.row]]];
[MyImage setBackgroundColor:[UIColor clearColor]];
[cell addSubview:MyImage];
[MyImage release];
cell.textLabel.text=[dataArray objectAtIndex:indexPath.row];
return cell;
我正在使用此表用于多种用途,因此一次又一次地刷新它.... 因此,下一个年龄与最后一个重叠由于哪个问题发生并且这两个图像都是可见的(我使用每个图像的透明背景)....当我不需要图像时出现其他问题...我无法删除最后一张图片......
请帮助
答案 0 :(得分:3)
您可能知道,当您从'dequeueReusableCellWithIdentifier'重用单元格时,它会返回现有的单元格实例(如果存在),这意味着如果单元格存在,其数据也存在,即图像,因此您需要在更新之前清除旧图像有新数据的单元格好像新数据没有图像那么它会显示旧图像,我想你明白了......
好的,这是解决方案:
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if(cell==nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewStyleDefault reuseIdentifier:cellIdentifier];
UIImageView* MyImage =[[UIImageView alloc]initWithFrame:CGRectMake(100,10,40,40)];
MyImage.tag = 1000;
[MyImage setBackgroundColor:[UIColor clearColor]];
[cell addSubview:MyImage];
[MyImage release];
}
UIImageView *imgView = (UIImageView*)[cell viewWithTag:1000];
imgView.image = nil;
imgView.image = [UIImage imageNamed:[imageArray objectAtIndex:indexPath.row]];
答案 1 :(得分:0)
您使用的地方
UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@“MyIdentifier”]; if(cell == nil){ cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:@“MyIdentifier”] autorelease]; }
将此修改为 UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@“MyIdentifier”]; cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:@“MyIdentifier”] autorelease];
这是解决方案,它总是向旧的现有单元添加新框架。
或
从清晰的颜色中删除某种颜色的背景颜色,每次在图像上添加默认图像或特定的image.same作为标签,当您不想添加任何文本到标签时,还要添加text = @“”;