0

我用 uiimage 创建 uitableview 自定义单元格我只想为偶数行添加一个图像,但它在这里不起作用是代码

     UITableViewCell *cell;
        UILabel *label = nil;

        cell = [tv dequeueReusableCellWithIdentifier:@"Cell"];
        if (cell == nil)
        {
    //label information
    }
       NSString *text = [items objectAtIndex:[indexPath row]];


     UIView *selectionView = [[UIView alloc]initWithFrame:cell.bounds];
        [selectionView setBackgroundColor:[UIColor colorWithRed:0 green:1 blue:1 alpha:1]];
        cell.selectedBackgroundView = selectionView;


    if (indexPath.row % 2==0) {

            UIImageView *img = [[UIImageView alloc]initWithFrame:CGRectMake(128,5, 32, 32)];
            imv.image=[UIImage imageNamed:@"England.png"];
            [cell.contentView addSubview:img];
            [imv release];

        }
        else {

           //  ....

        }
 return cell;

在第 3 行之后,如果我尝试滚动所有行,所有行都会为所有行拍摄这张图片

4

1 回答 1

0

您的单元格正在被重用,并且在重用单元格时不会删除 UIImageView。在 else 语句中,您需要添加代码以删除带有图像的 UIImageView。现在,您似乎没有保留对 UIImageView 的引用,因此您不能只调用removeFromSuperview. 在 else 语句中,您可以尝试枚举cell.contentView并删除任何 UIImageView 的所有子视图:

for (UIView *theSubview in [cell.contentView subviews])
{
    if(theSubview isKindOfClass:[UIImageView class])
    {
        [theSubview removeFromSuperview];
    }
 }

请注意,我尚未测试此代码。

于 2013-07-16T19:20:07.147 回答