我正在开发一个需要更改大量CATextLayers 字符串的应用程序,但是,它只有一个或两个字符(通常,字符串的长度约为 2-5 个字符)。
起初我使用非常慢的 UILabel,因此我尝试了 CATextLayer,它快了很多,但不够快,我经常一次更新大约 150 个 CATextLayer,但它只是没有切吧,我觉得有点滞后。
然后我尝试使用 CoreText 进行更底层的操作,我尝试使用 CTLine 绘制它,它的性能与 CATextLayer 大致相同,所以我回到了 CATextLayers,因为我的 CoreText 定位代码并不完美。
我开始考虑为每个字符串缓存前两个字符(它们始终是常量),并且只更改其他 3 个字符,边界更小,我认为这会更快一些,但是,它会更快吗?毕竟它将与其他文本层合成它,并且必须更新所有 150 个文本层。
有人有什么建议吗?你会如何处理它?