UItableViewCell中的项目多次显示

时间:2016-01-20 14:01:33

标签: ios iphone swift uitableview tableviewcell

我有一个UITableViewCell自定义类,我有一个自定义类的xib。现在我在主类的viewDidLoad中注册nib。

tableView.registerNib(UINib(nibName: "TCell", bundle: nil), forCellReuseIdentifier: "TCellID")

现在在cellForRowAtIndexPath我这样做是为了让细胞呈现

let cell = tableView.dequeueReusableCellWithIdentifier("TCellID", forIndexPath: indexPath) as! TCell
cell.bView.addTag(#SOMEITEM) 

我正在使用库here添加标签

return cell

我想要正确渲染单元格,但问题是当我向上和向下滚动tableView时,在我向上和向下滚动时会反复添加#SOMEITEM。

我认为问题是在tableView中渲染单元格。我尝试在cellForRowAtIndexPath中放置断点,每次滚动时都会调用它,并显示该单元格。但我无法弄清楚确切的问题。我搜索并没有找到解决方案。我在swift工作

希望你能理解这个问题

提前致谢

2 个答案:

答案 0 :(得分:3)

这是因为每次tableView要求您配置单元格时都会添加标记(每当新单元格即将出现在屏幕上时)。

首先删除所有代码,然后添加所需的代码来修复它:

cell.bView.removeAllTags() // Or equivalent method.
cell.bView.addTag(#SOMEITEM) 

答案 1 :(得分:1)

您可以覆盖" prepareForReuse"在您的自定义UITableViewCell中添加像Mark所说的代码 super.prepareForReuse() bView.removeAllTags() // Or equivalent method.