ios - Swift 中没有 dequeueReusableCellWithIdentifier 的自定义表格单元格

标签 ios swift uitableview reusability custom-cell

除了行插入动画 (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/

相关文章:

ios - 如何将 UITextField 的内容传递给另一个由 UITabbarController 链接的 UITableViewController

iOS 错误 "[__NSCFArray removeObjectAtIndex:]: mutating method sent to immutable object"

ios - 从 URL 加载的图像在 UITableView 滚动时发生变化

iOS setNeedsDisplay 在多个地区

IOS/ Storyboard/自动布局 : Make Textview Expand Vertically to Accomodate Text

ios - 测试 SKSpriteNode 是否在另一个 SKSpriteNode 之下

ios - 在关闭中转到另一个 ViewController 不能快速工作

ios - 如何为注释创建一个数组

iphone - App Store 代码与 iPhone 3G 上的 Xcode/Device 代码运行不同

objective-c - 将 __block 与 self 一起使用