首页 > 解决方案 > 可重用标识符单元与返回单元子类?

问题描述

我在 xib 文件中创建表格视图单元格,然后在表格视图中注册并cellForRowAt使用该tableView.dequeueReusableCell方法返回。在极少数情况下,我通过对它们进行子类化并手动编程接口来创建单元,我通常只是初始化它们并从内部返回它们cellForRowAt

我最近发现您可以使用tableView.register(cellClass: AnyClass?, forCellReuseIdentifier: String). 我应该注册我的子类并通过返回它们dequeueReusableCell吗?使用它而不是返回初始化的子类有什么好处?

标签: iosuitableviewcocoa-touchuikit

解决方案


您必须始终注册单元格(通过代码或故事板)。可重用性原则在 iOS 表和集合视图中是最重要的。这意味着表格视图仅在内存中绘制和存储当前可见的几个单元格+几个在最近的将来可见的单元格。如果您不使用可重用性,那么大量单元将出现很大的性能问题。

也不要忘记在单元子类的 prepareForReuse 方法中清理单元 ui


推荐阅读