为UITableViewCells使用一堆不同的类会严重影响性能吗



我有很多不同的UITableViewCell类型。从性能角度来看,将它们分为不同的类更好,还是拥有一个中心类并以编程方式围绕某些属性和视图进行更改更好?

我之所以这么问,是因为在cellForRowAtIndexPath中,你将单元格排成了队列,如果你将一堆不同的类排成队列,这不会使重用变得困难吗?因为在可重用的单元格"池"中会有大量的类划分?

您应该为您拥有的每个UITableViewCell类型创建一个类。这是最佳做法,原因有很多,包括但不限于:1) 代码的模块性(您可以在需要时轻松修改每个单元格)2) 简单性(对于所有的if/else语句等,为多种不同类型的细胞指定一个类会让人头疼。。。3) 不会有任何内存问题

为什么不会出现记忆问题,或者正如你所描述的那样,"巨大的阶级划分"?UITableView只会在其出现时分配填充表视图所需的单元格数量。当您滚动时,最初分配的单元格现在排队等待重用。如果出现了一个可以重用单元格的实例,它就会重用,从而避免另一个分配,从而避免UI速度减慢。因此,在任何时候,无论您有多少UITableViewCell类(除非您有数千个),队列中等待重用的单元格都相对较少。

添加到用户1840001的优秀答案(投票):

当你的单元格结构以任何非平凡的方式变化时,你应该使用不同的类。

如果具有相同的结构(字段集)但要在该结构中显示的内容不同,请使用相同的单元格类。

编辑:看起来我的赞成票没有"接受"。现在我对@user1840001的答案投了赞成票。。。

最新更新