如何在表格视图中提高UILabel性能?

时间:2016-02-09 04:30:35

标签: ios uitableview uilabel

我有一个带有自定义单元格的表视图,我正在尝试优化它以使滚动尽可能平滑。我已经遵循了关于表格视图优化的大部分建议,例如,使用固定高度,而不是使用AutoLayout等。

除了一件事,我已经达到了非常优化的状态。自定义单元格有一个图像和几个UILabel s。有一个图像& 3个标签,性能完美。然而,当我添加第4个标签时,我开始观察到一些急躁,非常小但不像以前那么平滑。

我搜索了网络,发现CoreText可以帮助提高性能。 CoreText是正确的方向吗?在表格视图中使用时,还有其他任何有助于提高UILabel性能的内容吗?

编辑:

我只对UILabel使用简单函数,方法是设置字体,字体颜色,文本和numberOfLines。

2 个答案:

答案 0 :(得分:5)

核心文本可能是性能的最终解决方案,但即使在到达那里之前,我也喜欢使用一个名为PaintCode的程序来绘制我的单元格的内容,如果它们特别复杂的话。

你需要做的其他事情可以在你需要达到这一点之前加快速度:

  1. 在调用 cellForRow之前执行所有计算。因此,任何数字格式,日期计算等都应该事先完成并存储在模型对象上。这样您就可以直接将它们插入到单元格属性中,并且它们已准备好显示。在cellForRow中花费的任何额外时间都会降低tableview
  2. 的速度
  3. 将所有标签和视图设置为不透明。在执行此操作时,您可能必须设置背景颜色,但这样可以更快地绘制视图。通过打开" Color Blended Layers"可以看到哪些视图具有透明度。从模拟器的调试菜单。你想要的是让你的细胞完全变绿。
  4. enter image description here

答案 1 :(得分:-2)

默认情况下,在所有标签中保留一些虚拟文本。更新文本不会花费内存。 CoreText相当昂贵,可能不适合这个!我认为虚拟文本技巧应该适合你。

希望这有效。