首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何提高表视图中的UILabel性能?

如何提高表视图中的UILabel性能?
EN

Stack Overflow用户
提问于 2016-02-09 04:30:35
回答 2查看 1.2K关注 0票数 0

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

除了一件事外,我已经在一个非常优化的状态下取得了成就。自定义单元有一个图像和多个UILabel,使用一个图像和3个标签,性能非常好。然而,当我添加第四个标签时,我开始观察到一些抽搐,非常小,但不像以前那么平滑。

我在网上搜索了一下,发现CoreText可以提高性能。CoreText是正确的方向吗?当在表视图中使用时,还有其他可以帮助提高UILabel性能的东西吗?

编辑:

我只通过设置UILabel的字体、字体颜色、文本和numberOfLines来使用简单的函数。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-09 04:35:36

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

不过,在你需要达到这一点之前,你还可以做一些事情来加快速度:

  1. 在调用cellForRow之前进行所有计算。因此,任何数字格式、日期计算等都应该事先完成并存储在模型对象上。这样,您就可以直接将它们插入到您的单元格属性中,它们就可以显示了。在cellForRow上花费的任何额外时间都会减慢tableview的速度。
  2. 将所有标签和视图设置为不透明。当你这样做的时候,你可能需要设置它们的背景色,但是它使得绘制视图的速度快得多。您可以通过打开模拟器的调试菜单中的“颜色混合层”来查看哪些视图具有透明度。你想要的是让你的细胞完全绿色。

票数 5
EN

Stack Overflow用户

发布于 2016-02-09 04:39:44

默认情况下,在所有标签中保留一些虚拟文本。更新文本不会占用内存。CoreText是相当昂贵的,而且可能不是为了这个!我认为虚拟文字技巧应该适用于你。

希望这能行。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35283922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档