2

我的 UITableview 中有一个可重复使用的单元格,我想仅在某些单元格上添加自定义图像。

这是我的代码,例如:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    BCContactCell * cell = [tableView dequeueReusableCellWithIdentifier:contactCellIdentifier];
    ...
    if ([contact isFavorite]) {
        UIImageView * fav = [[UIImageView alloc] initWithFrame:CGRectMake(280.0f, 2.0f, 32.0f, 32.0f)];
        [fav setImage:favoriteImg]; // already loaded
        [cell addSubview:fav];
    }
}

它有效,并且每个最喜欢的联系人的单元格中都有图片。除了当我向下滑动时,其他单元格也开始拍照,我似乎无法弄清楚。

任何人都可以帮助我如何做到这一点?

谢谢 !

4

1 回答 1

6

开始了,

给你的图像视图一个标签号, fav.tag = 1290; 稍后使用该数字,我们可以取回旧的 uiimageview 并将其从单元格中删除。
else{ [[cell viewWithTag:1290] removeFromSuperview]; }

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    BCContactCell * cell = [tableView dequeueReusableCellWithIdentifier:contactCellIdentifier];
    ...
    if ([contact isFavorite]) {
        UIImageView * fav = [[UIImageView alloc] initWithFrame:CGRectMake(280.0f, 2.0f, 32.0f, 32.0f)];
        fav.tag = 1290;
        [fav setImage:favoriteImg]; // already loaded
        [cell addSubview:fav];
    }else{
        [[cell viewWithTag:1290] removeFromSuperview];
    }
}

当涉及到 UITableViewCells 时,它们会重用已经创建的单元格。当他们重用旧的一次。您必须删除添加到单元格的 UIImageView;

于 2013-05-06T15:32:46.607 回答