在Swift中没有dequeueReusableCellWithIdentifier的自定义表格单元格
问题描述:
我有一个平均大小的表格,除了行插入动画(withRowAnimation
)以外,它的功能都很完美。我已经覆盖它(与社区的帮助下)有一个比原来的系统动画更长的时间,它的工作原理很好,但...在Swift中没有dequeueReusableCellWithIdentifier的自定义表格单元格
因为我使用自定义单元格作为可重复使用的单元格 - 每次我滚动这个效果正在被消灭。
所以我看到的唯一解决方案是停止重用。 我知道这会干扰内存,但在这种情况下,它是唯一的情况下(我知道)。
我的一般问题是如何加载自定义单元笔尖而不使用dequeueReusableCellWithIdentifier
以便重复使用不会发生。
谢谢。
答
你应该使用dequeueReusableCellWithIdentifier,不使用它是一个灾难的食谱。
看看你的代码,当你退出一个单元(重用或不重用,大部分时间它会被重用),你应该做的第一件事就是将该单元中的所有元素都设置回原始状态,以便重用的单元格像不重复使用的单元格那样工作。
我不知道你怎么动画/实施是从一个项目,我与定制单元写,但这里一个例子:
在我添加按钮每个细胞,这可能是1,2,3 ,. .. 纽扣。如果我在重复使用的单元格中没有做任何事情,我会得到比预期更多的按钮,因为旧按钮仍然存在于... 因此,在我的代码中,我在分离单元格后做的第一件事是删除所有按钮。
let cell = tableView.dequeueReusableCellWithIdentifier("RelatedCell") as! RelatedCell
cell.removeAllActionButtons()
在我的removeAllActionButtons(在我的自定义单元格的方法)方法会是这样的:
for button in actionButtons {
button.removeFromSuperview()
}
actionButtons是包含所有按钮添加到自定义单元格
没有一个数组回答他的问题。 –