ios - 可重用标识符单元与返回单元子类?
问题描述
我在 xib 文件中创建表格视图单元格,然后在表格视图中注册并cellForRowAt
使用该tableView.dequeueReusableCell
方法返回。在极少数情况下,我通过对它们进行子类化并手动编程接口来创建单元,我通常只是初始化它们并从内部返回它们cellForRowAt
。
我最近发现您可以使用tableView.register(cellClass: AnyClass?, forCellReuseIdentifier: String)
. 我应该注册我的子类并通过返回它们dequeueReusableCell
吗?使用它而不是返回初始化的子类有什么好处?
解决方案
您必须始终注册单元格(通过代码或故事板)。可重用性原则在 iOS 表和集合视图中是最重要的。这意味着表格视图仅在内存中绘制和存储当前可见的几个单元格+几个在最近的将来可见的单元格。如果您不使用可重用性,那么大量单元将出现很大的性能问题。
也不要忘记在单元子类的 prepareForReuse 方法中清理单元 ui
推荐阅读
- ruby-on-rails - 如何有条件地在苗条中添加一个div
- ios - 为什么有 Xcode12.4/12.5,iOS 标准架构是 arm64 和 armv7,但使用任何 iOS 设备 (arm64) 存档?
- object - 当我在 django 中将它用作表单中的下拉列表时,我的 ForeignKey 显示为模型对象
- r - 如何遍历数据框并在 R 中运行回归?
- spring-boot - Wildfly 11.0.0 最终版 java.lang.OutOfMemoryError:元空间
- python - 如何使用 pandas 在 Python 中的公共索引值上合并两个 CSV 文件?
- javascript - 重复事件系列:工作表到日历
- python - 如何从python字典创建html表,列表内有重复的列名
- java - 将函数从python转换为java
- c# - 通用基类的 FluentValidation