Swift

时间:2015-09-06 12:33:20

标签: ios swift uitableview reusability custom-cell

除了行插入动画(withRowAnimation)之外,我有一个平均大小的表,它的工作正常。我已经覆盖它(在堆栈社区的帮助下)比原始系统动画更长的持续时间并且它工作正常,但是......

因为我使用自定义单元格作为可重复使用的单元格 - 每次滚动时此效果都会被消除。

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

我的一般问题是如何在不使用dequeueReusableCellWithIdentifier的情况下加载自定义单元格笔尖,以便不会重复使用。

谢谢。

1 个答案:

答案 0 :(得分:-2)

你应该使用dequeueReusableCellWithIdentifier,而不是使用它是灾难的秘诀。

看一下你的代码,当你出一个单元格(重用或不重用,大多数时候它会被重用)时,你要做的第一件事就是将该单元格中的所有元素都设置回原始状态,这样重用的单元格就像一个非重用的单元格。

我不知道你的动画/实现是什么,但这里是我用自定义单元格编写的项目的一个例子:

在每个单元格中我添​​加了按钮,这可能是1,2,3,...按钮。如果我在重复使用的单元格中没有做任何事情,我会有比预期更多的按钮,因为旧按钮仍然存在... 所以在我的代码中,我在取消单元格后做的第一件事就是删除所有按钮。

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

我的removeAllActionButtons(我的自定义单元格中的方法)方法类似于:

for button in actionButtons {
    button.removeFromSuperview()
}

actionButtons是一个包含添加到该自定义单元格的所有按钮的数组