多くの CATextLayers 文字列を変更する必要があるアプリに取り組んでいますが、そのうちの 1 文字または 2 文字のみです (通常、文字列の長さは約 2 ~ 5 文字です)。
最初は非常に遅いUILabelsを使用していました。そのため、CATextLayerを試しました。これははるかに高速でしたが、十分ではありませんでした。約150のCATextLayersを頻繁に更新しています。カット、ラグを感じます。
次に、CoreText を使用してさらに低レベルで実行しようとしました。CATextLayer とほぼ同じパフォーマンスの CTLine を使用して描画しようとしたため、CoreText の配置コードが完全ではなかったため、CATextLayers に戻りました。
文字列ごとに最初の 2 文字 (常に一定) をキャッシュし、残りの 3 文字のみを小さい境界で変更することを考え始めました。結局のところ、それを他のテキストレイヤーと合成する必要があり、150のテキストレイヤーすべてを更新する必要があります。
誰かアドバイスはありますか?どのようにアプローチしますか?