使用UITableView将数据绑定哪种方法更好?

时间:2016-01-18 16:49:58

标签: ios uitableview

很长一段时间以来,我一直在委托方法- tableView:cellForRowAtIndexPath:中使用表格视图单元格绑定数据。

但最近,我读了一篇关于如何获得更好表现的博客。它告诉我们,我们应该将数据与另一个委托方法- tableView:willDisplayCell:forRowAtIndexPath:中的表格视图单元格绑定,因为单元格不会显示在- tableView:cellForRowAtIndexPath:中。

我在我的个人项目中尝试过,但看起来很奇怪。一些细胞重叠。

在我的项目之前,我使用Masonry来布局单元格的子视图。在将数据与- tableView:cellForRowAtIndexPath:中的表格视图单元格绑定后,我调用了[cell setNeedsLayout][cell layoutIfNeeded]

我开始思考,这是绑定数据的更好方法吗?或者,我应该如何修改我的代码以最低的成本(修改时间)获得这样的性能。

1 个答案:

答案 0 :(得分:0)

似乎正在就这个话题进行辩论。

我认为您所指的文章是is found here。它认为你应该在willDisplayCell而不是cellForRowAtIndexPath进行数据绑定。

但是,this article指出cellForRowAtIndexPathwillDisplayCell是在同一个布局周期中执行的,这意味着任何一个地方的数据绑定都会产生相同的效果。

他们都同意的事实是计算行的高度应该非常快。进行复杂的计算可能会导致性能问题。

在任何情况下,编写好的模型代码非常重要,这样您的视图控制器就可以专注于将模型连接到视图。下载要在UITableView代码和其他网络/设备密集型进程中显示的图像通常是个坏主意,可能会导致问题。

故事的道德:尽快计算行高并编写好的模型代码,以便您的视图控制器可以减少计算量。