gpt4 book ai didi

ios - CATextLayer 快速更改文本

转载 作者:行者123 更新时间:2023-11-29 13:07:49 24 4
gpt4 key购买 nike

我正在开发一个需要更改 很多 CATextLayers 字符串的应用程序,但是,只有其中的一个或两个字符(但一般来说,字符串的长度约为 2-5字符)。

起初我使用的 UILabels 非常慢,因此我尝试了 CATextLayer,它快得多,但速度不够快,我经常更新大约 150 个 CATextLayers,一次全部更新,它只是没有削减它,我觉得滞后。

然后我尝试用 CoreText 做更底层的工作,我尝试用 CTLine 绘制它,它的性能与 CATextLayer 大致相同,所以我回到了 CATextLayers,因为我的 CoreText 定位代码不是'太完美了。

我开始考虑为每个字符串缓存前两个字符(它们始终是常量),并且只更改其他 3 个字符,边界较小,我认为这会更快一些,但是会更快吗?毕竟它需要将它与其他文本层合成,并且必须更新所有 150 个文本层。

有人有什么建议吗?你会如何处理它?

附件是仪器的屏幕截图,显示问题出在 CATextLayer 的性能上:instruments time profile

最佳答案

位图字体可能是解决此问题的最佳方法,因为就此类性质的字体绘制而言,它们的性能远远超过其他任何东西。但是您需要将它们预渲染到您希望的比例,以便在视觉和性能方面充分利用它们。

而且您最好使用 Sprite Kit,因为它具有对它们的 native 处理。这是一个 github 存储库,其中包含一个有用的东西,可以更轻松地使用来自通用工具的渲染位图来创建它们:https://github.com/tapouillo/BMGlyphLabel

关于ios - CATextLayer 快速更改文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18198063/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com