繁体   English   中英

自定义UITableViewCell删除子视图

[英]Custom UITableViewCell Removing a subview

所以我有一个问题,并且确切地知道是什么原因造成的,而不是如何解决。 基本上我有一个tableViewCell正在加载这样的东西:

BroadcastTableViewCell *cell = (BroadcastTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

/*
 * Other code to finish cell setup
 *
 */

// Problem section
CGRect frame;
    frame.size.width=50; frame.size.height=70;
    frame.origin.x=0; frame.origin.y=0;
    AsyncImageView* asyncImage = [[[AsyncImageView alloc]
                                   initWithFrame:frame] autorelease];
    asyncImage.tag = 999;
    NSURL *url = [[[NSURL alloc] initWithString:[NSString stringWithFormat:@"http://image URL/%@", trimmedPath]] autorelease];      
    [asyncImage loadImageFromURL:url];
    [cell.contentView addSubview:asyncImage];

基本上,这是一种异步加载单元格图像的方法,因此表格视图可以平滑滚动。 问题是,当我使用现有ID将新单元出队时,图像不会重置,而是放置在新单元下面。 有谁知道如何检测图像并在将新单元出队时将其删除?

只要搜索你的子视图AsyncImageView使用viewWithTag:

AsyncImageView* asyncImage = [cell.contentView viewWithTag:999];
if (asyncImage == nil) {
  CGRect frame;
  frame.size.width=50; frame.size.height=70;
  frame.origin.x=0; frame.origin.y=0;
  asyncImage = [[[AsyncImageView alloc] initWithFrame:frame] autorelease];
  asyncImage.tag = 999;
  [cell.contentView addSubview:asyncImage];
} else {
  // might want to cancel download here somehow
}

NSURL *url = [[[NSURL alloc] initWithString:[NSString stringWithFormat:@"http://image URL/%@", trimmedPath]] autorelease];      
[asyncImage loadImageFromURL:url];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM