2015-09-06 120 views
0

我有一个平均大小的表格,除了行插入动画(withRowAnimation)以外,它的功能都很完美。我已经覆盖它(与社区的帮助下)有一个比原来的系统动画更长的时间,它的工作原理很好,但...在Swift中没有dequeueReusableCellWithIdentifier的自定义表格单元格

因为我使用自定义单元格作为可重复使用的单元格 - 每次我滚动这个效果正在被消灭。

所以我看到的唯一解决方案是停止重用。 我知道这会干扰内存,但在这种情况下,它是唯一的情况下(我知道)。

我的一般问题是如何加载自定义单元笔尖而不使用dequeueReusableCellWithIdentifier以便重复使用不会发生。

谢谢。

回答

-1

你应该使用dequeueReusableCellWithIdentifier,不使用它是一个灾难的食谱。

看看你的代码,当你退出一个单元(重用或不重用,大部分时间它会被重用),你应该做的第一件事就是将该单元中的所有元素都设置回原始状态,以便重用的单元格像不重复使用的单元格那样工作。

我不知道你怎么动画/实施是从一个项目,我与定制单元写,但这里一个例子:

在我添加按钮每个细胞,这可能是1,2,3 ,. .. 纽扣。如果我在重复使用的单元格中没有做任何事情,我会得到比预期更多的按钮,因为旧按钮仍然存在于... 因此,在我的代码中,我在分离单元格后做的第一件事是删除所有按钮。

let cell = tableView.dequeueReusableCellWithIdentifier("RelatedCell") as! RelatedCell 
cell.removeAllActionButtons() 

在我的removeAllActionButtons(在我的自定义单元格的方法)方法会是这样的:

for button in actionButtons { 
    button.removeFromSuperview() 
} 

actionButtons是包含所有按钮添加到自定义单元格

+0

没有一个数组回答他的问题。 –

相关问题