1

我创建了 imageview 以在 cellForRowAtIndexPath 方法上显示图像。我在 Cell 中添加 imageview 作为子视图。但是当我当时重新加载我的表格视图时,单元格中的图像不会重新加载。以下是我的代码。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }

    imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[arrcathatname objectAtIndex:indexPath.row]]];
    [imgView setFrame:CGRectMake(20, 7, 35, 35)];
    [cell addSubview:imgView];

    cell.textLabel.text = [arrCatName objectAtIndex:indexPath.row];

    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    // Configure the cell...

    return cell;
}

所以,我想删除我的 imageview 以正确重新加载图像。

我怎样才能做到这一点?

4

2 回答 2

9

尝试将子视图添加到单元格:

[cell.contentView addSubview:imgView];

您可以使用代码删除该子视图:

[cell.contentView.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
于 2012-12-13T09:01:28.293 回答
0
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
imgView = [[UIImageView alloc] init];
imgView.tag  = 111;



[cell.contentView addSubView:imgView];
}
imgView = (UIImageView*)[cell.contentView ViewWithTag:111];

[imgView setFrame:CGRectMake(20, 7, 35, 35)];
imgView.image = [UIImage imageNamed:[arrcathatname objectAtIndex:indexPath.row]];


cell.textLabel.text = [arrCatName objectAtIndex:indexPath.row];

cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
// Configure the cell...

return cell;
}

试试这个

于 2012-12-13T08:55:29.427 回答