2014-12-02 33 views
1

这让我很生气,我已经看过关于此的每篇文章。iOS Swift出现dequeueReusableCellWithIdentifier导致重叠

我正在使用自定义tableview单元格类和XIB文件。这一切都很好,直到我滚动屏幕(即旧板栗)的表视图。我知道它与dequeueReusableCellWithIdentifier方法有关并且不清除旧数据。但我不知道如何实现这一点。

一旦单元格滚动屏幕,它会导致重叠并继续将图像添加到单元格。

let cell: DetailHeaderTableViewCell = tableView.dequeueReusableCellWithIdentifier("detailHeaderTableViewCell") as DetailHeaderTableViewCell 

从我发现,我需要实现这样的事情:

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:nil]; 

UIImageView *defaultImageView; 
UILabel *customLabel; 

if (cell == nil) { 
    // create the cell and empty views ready to take the content. 
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier]; 
} else { ... } 

但是我不能工作,如何在迅速实现这一目标。

非常感谢提前。

回答

1

您要找的是UITableViewCell's prepareForReuse方法。

如果您使用的是自定义UITableView单元格,则需要实施此方法以清除单元格中的任何旧数据,然后重用它们。

+0

谢谢。正是我需要的! – eol 2014-12-02 23:03:49

+0

我现在有一个问题,当我重新审视视图时,现在所有的单元约束都是错误的。即它们都会返回到默认的44pt,除非我将这些单元格从屏幕上滚动出来。有任何想法吗? – eol 2014-12-03 06:30:31

+0

这听起来像一个单独的&新的问题,而不是你问的原始问题。为什么不问一个新问题,显示你在''prepareForReuse''中做了什么的代码? – 2014-12-03 06:43:58

相关问题