代码之家  ›  专栏  ›  技术社区  ›  airportyh

RemoveFromSuperView不工作?

  •  0
  • airportyh  · 技术社区  · 14 年前

    我想用 MikeJ's 将图像异步加载到TableViewCell中的技术。然而,我遇到了一个问题。图像对我来说可以加载,但是当我向下滚动列表时,没有加载图像的单元格将显示错误的图像,直到获取正确的图像。我已经将问题深入到从单元格中删除旧图像视图的部分(这在TableView:CellForRowatindexPath:method的内部):

    image = (AsyncImageView *)[cell viewWithTag:0];
    ...
    NSLog(@"\tremoving from superview: %@", image);
    [image removeFromSuperview];
    NSLog(@"\tviewWithTag: 0 %@", [cell viewWithTag:0]);
    

    我的日志记录显示,removeFromSuperView不起作用:在调用removeFromSuperView之后,它仍然是单元的一部分。这会导致错误的图像出现在其他列表项中。

    所以,我想问题是,我该如何从细胞中移除它?

    1 回复  |  直到 14 年前
        1
  •  1
  •   tc.    14 年前

    0是默认标记。我怀疑[cell viewwithtag:0]返回单元格:

    接收器层次结构中与标记匹配的视图。接收器包含在搜索中。