如何提高 table 视图中的 UILabel 性能?
How to improve UILabel performance in a table view?
我有一个带有自定义单元格的 table 视图,我正在尝试优化它以使滚动尽可能流畅。我遵循了大多数关于 table 视图优化的建议,例如,使用固定高度,不使用 AutoLayout 等。
除了一件事,我已经达到了一个非常优化的状态。自定义单元格有一张图片和几张 UILabel
。一张图片+3个标签,性能堪称完美。然而,当我添加第 4 个标签时,我开始观察到一点抖动,非常小但不像以前那么平滑。
我在网上搜索了一下,发现 CoreText
可以帮助提高性能。 CoreText
是正确的方向吗?在 table 视图中使用时,是否还有其他有助于提高 UILabel
性能的东西?
编辑:
我只通过设置其字体、字体颜色、文本和行数来为 UILabel
使用简单的功能。
核心文本可能是性能的最终解决方案,但即使在到达那里之前,我也喜欢使用一个名为 PaintCode 的程序来绘制我的单元格的内容,如果它们特别复杂的话。
您还可以做一些其他事情来加快速度,然后再到达那个点:
- 在调用
cellForRow
之前 进行所有计算。因此,任何数字格式、日期计算等都应该事先完成并存储在您的模型对象中。这样您就可以直接将它们插入您的单元格属性,它们就可以显示了。在 cellForRow
上花费的任何额外时间都会减慢您的 tableview
.
- 将所有标签和视图设置为不透明。执行此操作时,您可能必须设置它们的背景颜色,但它可以更快地绘制视图。您可以通过从模拟器的调试菜单中打开 "Color Blended Layers" 来查看哪些视图应用了透明度。你想要的是让你的细胞完全变绿。
默认情况下在所有标签中保留一些虚拟文本。更新文本不会消耗内存。
CoreText 非常昂贵,可能不适合这个!我认为虚拟文本技巧应该适合你。
希望这有效。
我有一个带有自定义单元格的 table 视图,我正在尝试优化它以使滚动尽可能流畅。我遵循了大多数关于 table 视图优化的建议,例如,使用固定高度,不使用 AutoLayout 等。
除了一件事,我已经达到了一个非常优化的状态。自定义单元格有一张图片和几张 UILabel
。一张图片+3个标签,性能堪称完美。然而,当我添加第 4 个标签时,我开始观察到一点抖动,非常小但不像以前那么平滑。
我在网上搜索了一下,发现 CoreText
可以帮助提高性能。 CoreText
是正确的方向吗?在 table 视图中使用时,是否还有其他有助于提高 UILabel
性能的东西?
编辑:
我只通过设置其字体、字体颜色、文本和行数来为 UILabel
使用简单的功能。
核心文本可能是性能的最终解决方案,但即使在到达那里之前,我也喜欢使用一个名为 PaintCode 的程序来绘制我的单元格的内容,如果它们特别复杂的话。
您还可以做一些其他事情来加快速度,然后再到达那个点:
- 在调用
cellForRow
之前 进行所有计算。因此,任何数字格式、日期计算等都应该事先完成并存储在您的模型对象中。这样您就可以直接将它们插入您的单元格属性,它们就可以显示了。在cellForRow
上花费的任何额外时间都会减慢您的tableview
. - 将所有标签和视图设置为不透明。执行此操作时,您可能必须设置它们的背景颜色,但它可以更快地绘制视图。您可以通过从模拟器的调试菜单中打开 "Color Blended Layers" 来查看哪些视图应用了透明度。你想要的是让你的细胞完全变绿。
默认情况下在所有标签中保留一些虚拟文本。更新文本不会消耗内存。 CoreText 非常昂贵,可能不适合这个!我认为虚拟文本技巧应该适合你。
希望这有效。