編集:
CoreText を再実装する仕事をしていると想像してください。
コードポイントの順序付きリストである NSString と、基本的に CGPathRef のリストである一連のグリフ (NSFont/CTFont) を取得します。
その中間の何かがレイアウトを担当しています。
また、ある種の環境では、レンダリング先の CGGraphicContext を提供する必要があります。
表示するオブジェクトの種類はCGPath です。CGPath ごとに 1 つの UIView を作成するのが心配です! テキストのブロックの場合、文字グリフごとに UIView を作成しませんよね?
一度に描画する (小さな) オブジェクトのセットが大きくなる可能性があります。1000年代に。多くは、スクロールして表示されるまで画面外になります。
私の最善の策は、それぞれに 1 つの UIView を作成することです。その理由は次のとおりです。
適切なタイリングを使用すると、ほとんどの場合、画面外にあるビューがメモリ内にさえなく、必要なときに生き生きと表示されるようにすることができます
さらに重要なことは、ズームするときに、そのような各ビューのレイヤー contentScale を zoomFactor に設定して、ぼやけた階段ではなく完全な精度が得られるようにすることです
一方、(それ以外の場合は完全に一般的な)親ビューが何千もの子に対してどのように動作するかはわかりません。そのため、「子」が単一のビューの領域になるようにコードを再考したくなります。しかし、その後、そのビューのレイヤー contentScale を設定することを考え始め、ズーム中にメモリを使い果たすことを心配しています: レイヤーの機械が「賢い」かどうか、そのコンテンツのほとんどが巨大なバッキング ビットマップを作成しないようにするかどうかはわかりません。とにかく見えない
どうしよう、ああ、どうしよう。
共有したい経験がある人はいますか?