除了行插入动画(withRowAnimation
)之外,我有一个平均大小的表,它的工作正常。我已经覆盖它(在堆栈社区的帮助下)比原始系统动画更长的持续时间并且它工作正常,但是......
因为我使用自定义单元格作为可重复使用的单元格 - 每次滚动时此效果都会被消除。
所以我看到的唯一解决方案是停止重用。 我知道这会干扰记忆,但在这种情况下它是剩下的唯一场景(我知道)。
我的一般问题是如何在不使用dequeueReusableCellWithIdentifier
的情况下加载自定义单元格笔尖,以便不会重复使用。
谢谢。
答案 0 :(得分:-2)
你应该使用dequeueReusableCellWithIdentifier,而不是使用它是灾难的秘诀。
看一下你的代码,当你出一个单元格(重用或不重用,大多数时候它会被重用)时,你要做的第一件事就是将该单元格中的所有元素都设置回原始状态,这样重用的单元格就像一个非重用的单元格。
我不知道你的动画/实现是什么,但这里是我用自定义单元格编写的项目的一个例子:
在每个单元格中我添加了按钮,这可能是1,2,3,...按钮。如果我在重复使用的单元格中没有做任何事情,我会有比预期更多的按钮,因为旧按钮仍然存在... 所以在我的代码中,我在取消单元格后做的第一件事就是删除所有按钮。
let cell = tableView.dequeueReusableCellWithIdentifier("RelatedCell") as! RelatedCell
cell.removeAllActionButtons()
我的removeAllActionButtons(我的自定义单元格中的方法)方法类似于:
for button in actionButtons {
button.removeFromSuperview()
}
actionButtons是一个包含添加到该自定义单元格的所有按钮的数组