私は今、この問題を 1 週間解決しようとしています。頭に浮かんだ多くのアイデアをテストしましたが、NSString
カスタム フォントのサイズを正しく計算できません。
UITextView
テキストを含むものと、UIView
の行の行番号を描画するものがありUITextView
ます。問題は、NSString
UIKit
追加機能が のサイズの計算でタブ幅を無視していることNSString
です。
ここの図では、7 行目ではっきりとわかります。これは、 でレンダリングされた場合に改行された行でUITextView
あり、その後、すべての行が影響を受けます。
使用しているフォントはAdobe Source Code Proです。
NSString
UIKit
Additionsのすべての方法を試しましたが、成功しませんでした。
sizeWithFont
sizeWithFont:forWidth:lineBreakMode:
sizeWithFont:minFontSize:actualFontSize:forWidth:lineBreakMode:
また、文字列内のすべてのタブを 4 つのスペースに置き換えようとしましたが、これは役に立ちますが、それでも常に機能するとは限りません。一部の行では役立ちますが、そうでない行もあります。
NSString
高さを正しく計算する方法はありますか?CoreText
多分?
1 つの小さなメモ。プロトコルのジオメトリヒットテストメソッドを使用してこれを解決しようとしましたUITextInput
が、それらが機能している間、シミュレーターでの CPU 負荷は 100% であるため、実際のデバイスでは、特に約 1500 以上のファイルをロードすると、アプリが強制終了されます。コード行。
そして、これがLineNumbersView.mに使用しているコードの要点です。