重用UITableViewCell会移动子视图帧

时间:2013-11-07 20:12:11

标签: ios objective-c uitableview

我是UITableViewCell的子类。在我的自定义单元格的xib中,我有一个UIImageView,其框架为(0,0,57,57)。它具有设置为top,left,width和height的自动布局约束。

首次渲染表视图时,所有单元格看起来都很好。但是当我滚动,(并因此重用细胞)时,UIImageView的框架转移到(15,0,57,57)。其他子视图似乎都没有受到影响。

enter image description here

UITableViewDataSource:

- (UITableViewCell*) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    Content* content = [[[ContentManager sharedContentManager] allContent] objectAtIndex:indexPath.row];
    ContnetCell* cell = [tableView dequeueReusableCellWithIdentifier:kCellReuseIdentifier forIndexPath:indexPath];
    [cell loadWithContent:content];
    return cell;
}

细胞:

{
    [super prepareForReuse];
    self.imageView.image = nil;
}

-(void)loadWithContent:(Content*)content
{
    self.imageView.image = content.contentImage;
}

1 个答案:

答案 0 :(得分:4)

这是一个自定义单元格吗?如果您使用与默认单元格中的自定义图片或标签相同的属性名称(即imageViewtextLabeldetailTextLabel),则可能会发生奇怪的事情。尝试将imageView重命名为其他内容,看看是否可以修复它。