UITableView动态与静态单元分配性能/内存使用情况

时间:2012-10-18 19:14:24

标签: iphone ios performance uitableview memory

有人能告诉我在UITableView中使用静态和动态单元格之间在性能/内存使用方面的权衡吗?

这是我的情况:我有一个TableView,有6个不同的部分。第一部分是我的tableView中唯一一个部分,每次加载视图时都会保存不同数量的单元格,具体取决于应用程序的当前状态。即我已在界面构建器中为该部分声明了12 static cells,但是我只显示了一定数量的cells,具体取决于用户与应用程序的交互。其他5个tableView部分都包含永不更改的UISwitchestextFields

所以说我为第一部分静态分配了50 cells,但仍然只显示其中一半,具体取决于应用的状态。我希望能够显示最多50个cells。这将如何影响我的应用程序的速度或性能?每次动态完成整个tableView并重新绘制其他部分的switchestextFields会带来更好的应用程序性能吗?

1 个答案:

答案 0 :(得分:2)

在这种情况下,UITableView本身只与性能相关。真正的问题是如何以及何时分配新单元格。

如果您的静态单元格的内容永远不会更改,并且您使用界面构建器(néeInterfaceBuilder)创建它们,您将看到该分配仅发生一次,通常在-viewDidLoad中,并且在该生命周期中表(或至少直到-viewDidUnload)这些单元格将存在,不需要重新分配。

但这是一种权衡。现在您的单元格加载速度更快,但您的应用程序将拥有更多内存。您只需根据具体情况决定这是否会显着减慢您的应用程序,在这种情况下,您可能希望在数据源单元格获取方法中懒惰加载静态单元格的典型“动态”样式