重用 uitableview 单元格以及单元格中的子视图

Posted

技术标签:

【中文标题】重用 uitableview 单元格以及单元格中的子视图【英文标题】:Reuse the uitableview cell as well as the subview in the cell 【发布时间】:2011-08-02 04:53:40 【问题描述】:

开发人员, 我已将 uitextviews 添加为 uitableviewcell 中的子视图。我在自定义单元格中有大约 4 列和 30 行。现在的问题是我每次都必须分配新的 uitextview ,这就是为什么滚动 tableview 变得非常慢,单元格需要很长时间才能加载。 谁能告诉我如何只分配一次我的 textview 并将其重用于其他单元格。

【问题讨论】:

我正在使用表格单元格实例。但我也想重用作为单元格中子视图的文本视图。由于有动态列数,有时 2 或 3 可能 4,我正在填充表格行。第一行中的前 3 个起始元素。然后是第二行中的其他 3 个 uiview。我使用了自定义单元格,但是在填充该行中的第三个 uivew 时,前两个与第三个重叠。请告诉我如何重用单元格以及 uiview 的子视图.. 【参考方案1】:

如果您创建 UITableViewCell 的自定义子类,则可以对具有 UITextField 的单元格进行排队/出列。您应该可以使用以下方法重置您的文本视图:

- (void)prepareForReuse; 

一个程序有多个不同的 UITableViewCell 子类是正常的。这是 UIKit 中子类化最多的对象之一

【讨论】:

我应该在这个方法中分配和初始化我的uitextview并调用这个方法吗? 不,你在 init 方法中创建了 uitextview,UITableViewCell 没有被释放。它们被存储起来供以后重复使用。你也永远不会调用 - (void)prepareForReuse;操作系统会为你调用它。只需将此方法子类化以重置有关 UITextView 的所有值,它应该很好。 你能告诉我如何使用自定义单元格创建 3 列吗?我使用了自定义单元格,但在填充第三列时,前两列与第三列单元格重叠。

以上是关于重用 uitableview 单元格以及单元格中的子视图的主要内容,如果未能解决你的问题,请参考以下文章

滚动 UITableView 时自定义单元格中的 UITextField 文本正在更改

表格单元格中的集合视图。这是重用的错误

更新 UITableView 单元格中的特定按钮图像

Swift - uitableview 重用单元格时用户输入混淆?

Swift 3 - 使用多个自定义单元重用单元的问题

每个 UICollectionView 单元格中的 UITableView