我遇到了tableview的问题。
我有一个音轨列表,如果此曲目确实存在,我会检查每个曲目。如果没有,我在单元格图像视图中的图稿上设置了删除的图像。
//SET DELETED IMAGE IF TRACK NOT EXISTS
if (!trackExists && cell.trackImageView.subviews.count < 1) {
UIImageView *deletedImageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 60, 60)];
deletedImageView.image = [self resizeImageWithImage:[UIImage imageNamed:@"cellDeletedImage"] scaledToSize:CGSizeMake(60, 60)];
[cell.trackImageView addSubview:deletedImageView];
}
有时当我重新加载tableview时,删除的图像位于现有轨道上。我知道有更有效的方法来做到这一点,但我尝试并尝试过,我最终到了这里。
我也记录了这个方法,即使没有日志也会删除已删除的图像。
答案 0 :(得分:0)
如果您正在使用表格视图,那么您可能正在重复使用单元格。当你上下滚动表几次时会发生这种情况吗?如果再次滚动,是否有一个已删除图像的单元格突然没有它?
听起来重用的单元格仍然可以引用该已删除的图像。
您在添加该图片视图的位置并不十分清楚,但我建议您将该代码移动到表格视图单元格的自定义类(或者如果它不存在则创建一个)。随后在prepareForReuse
中,确保删除或隐藏图像视图。
@class TrackTableViewCell : UITableViewCell
{
- (void) prepareForReuse
{
//Remove / hide image view
}
- (void) setAsDeleted
{
//Add / show image view
}
}
(原谅objective-c语法错误!我一直在使用Swift一段时间。)