我的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];
}
}
它有效,每个最喜欢的联系人都在其单元格中有图片。 除非我向下滑动,否则其他单元格也开始拍摄,我似乎无法弄明白。
任何人都可以帮我解决这个问题吗?
谢谢!
答案 0 :(得分:6)
我们走了,
为您的imageview提供标签号,
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;