私は TextKit フレームワークを使用して、次のような列にテキストをタイプセットするビューに取り組んでいます:
UIView
の境界をエッジ インセット (黒い四角形) で使用して 10 を計算し、それを(赤い四角形)CGRects
に変換します。NSTextContainers
で、グリフをタイプセットして描画する にdrawRect:
それらを渡します。NSLayoutManager
私の質問は次のとおりです。必要な列の数を計算するにはどうすればよいですか? 一定数の列を描画できますが、テキストの長さが変化するため、列の数をプログラムで調整する必要があります。
[NSLayoutManager glyphRangeForTextContainer:]
テキスト コンテナを空のままにしておくと、長さ 0 の範囲を返すメソッドが見つかりました。したがって、ループしてテキスト コンテナーを作成し、このメソッドを使用してさらにコンテナーが必要かどうかを判断することができます。ただし、この方法はレイアウト計算をトリガーするため非効率的であると言われています。おそらく何百回もループして実行するのは好ましくありません。
もっと良い方法があるはずです!
答えてくれてありがとう、ピート。