除了行插入动画 (withRowAnimation
) 之外,我有一个大小适中的表格,它运行良好。我已经覆盖它(在堆栈社区的帮助下)使其具有比原始系统动画更长的持续时间并且它工作得很好,但是......
因为我将自定义单元格用作可重复使用的单元格 - 每次我滚动时,这种效果都会消失。
所以我看到的唯一解决方案是停止重复使用。 我知道这会干扰内存,但在这种情况下,这是唯一剩下的场景(我知道)。
我的一般问题是如何在不使用 dequeueReusableCellWithIdentifier
的情况下加载自定义单元格 Nib ,以便不会发生重用。
谢谢。
最佳答案
您应该使用 dequeueReusableCellWithIdentifier,不使用它会导致灾难。
查看您的代码,当您将一个单元格出列时(重复使用与否,大多数情况下它会被重复使用),您应该做的第一件事是将该单元格中的所有元素设置回原始状态,以便重用的单元格表现得像非重用的单元格。
我不知道你的动画/实现是关于什么的,但这里有一个我用自定义单元格编写的项目的例子:
在我添加按钮的每个单元格中,这可能是 1、2、3... 按钮。如果我在重复使用的单元格中什么都不做,我将拥有比预期更多的按钮,因为旧按钮仍然存在...... 所以在我的代码中,我在单元格出队后做的第一件事就是删除所有按钮。
let cell = tableView.dequeueReusableCellWithIdentifier("RelatedCell") as! RelatedCell
cell.removeAllActionButtons()
我的 removeAllActionButtons(自定义单元格中的一个方法)方法类似于:
for button in actionButtons {
button.removeFromSuperview()
}
actionButtons 是一个包含所有添加到该自定义单元格的按钮的数组
关于ios - Swift 中没有 dequeueReusableCellWithIdentifier 的自定义表格单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32423600/