2014-08-30 72 views
0

我的自定义单元格包含许多UI元素。我发现重用单元非常困难。所以我将创建的单元设置为表视图的didEndDisplayingCell委托方法中的零。这样做有没有问题。会妨碍表现吗?这是我的代码重复使用表格视图单元格中的问题

(void)tableView:(UITableView *)tableView didEndDisplayingCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { 
    if ([tableView.indexPathsForVisibleRows indexOfObject:indexPath] == NSNotFound){ 
     VBMerchantDealCell *cell = (VBMerchantDealCell *)[tableView cellForRowAtIndexPath:indexPath]; 
     cell = nil; 
    } 
} 
+0

你为什么将单元设置为零?你为什么不使用重用机制?也许如果你解释你遇到的问题是有人可能会帮助你。 – Abizern 2014-08-30 10:27:44

+0

@Abizern我的自定义单元格包含切换徽章,每3秒切换一次。切换时显示在徽章上的文字也不同,徽章颜色和单元上每个徽章上显示的文字也不同。我该如何处理这件事。当我尝试使用启用重用的同一单元格时,单元格内的内容和文本都是重复的。 – 2014-08-30 10:33:19

回答

0

是的,不重复使用单元格会对性能非常不利。在单元中使用透明度也可能会影响性能(即滚动)。您可以使用乐器或模拟器来检查:“颜色混合图层”会将所有非不透明视图着色为红色。

0

在您的细胞子类中使用prepareToReuse方法。这里将所有值重置为默认值,并在相应的cellForRowAtIndexPath方法中将适当的值设置为单元格。

而且,不重复使用单元是一种不必要的性能开销。

+0

@Adhithya 在这里,我的自定义单元格包含徽章和该徽章内的标签(均在xib中)。那么我怎么可以重用这个单元格。如果我使cell.imgBadgeImageView.image = nil和cell.lblBadgeLabel.Text = nil它们都将从所有剩余的单元中消失(因为我们正在重新使用单元格)。我是否需要将此作为子视图添加到代码中的单元格中。如果我这样做,我如何访问单元格徽章图像视图和徽章标签。我需要访问这两个,因为有一个动画(用于imageview)和文本更改(用于标签)。 PLZ响应... – 2014-08-31 17:24:46

+0

我已经回答了。在cellForRowAtIndexPath中取出单元格后,为您的徽章imageview和单元格设置正确的值。 – Adithya 2014-09-01 01:40:36