我正在尝试解决这个问题一个星期,并且我已经测试了我脑海中的很多想法,但我无法正确计算NSString自定义字体的大小。
我有UITextView一个包含文本和一个UIView在其上绘制行号的UITextView. 问题是NSString UIKitAdditions 在计算NSString.
在图片中,您可以在第 7 行清楚地看到,这是在渲染时带有换行符的行UITextView,之后所有行都受到影响。

我使用的字体是Adobe Source Code Pro。
我已经尝试了NSString UIKitAdditions 中的所有方法,但均未成功。
sizeWithFont
sizeWithFont:forWidth:lineBreakMode:
sizeWithFont:minFontSize:actualFontSize:forWidth:lineBreakMode:
我还尝试用四个空格替换字符串中的所有制表符,它有帮助,但它仍然不能一直工作。对于某些行,它有帮助,但对于某些行则没有。
任何建议如何NSString正确计算高度?CoreText也许?
一张小纸条。我也尝试通过使用来自UITextInput协议的几何命中测试方法来解决这个问题,当它们工作时,模拟器上的 cpu 负载是 100%,所以在真实设备上它会杀死应用程序,特别是如果我加载大约 1500+ 的文件代码行。
这是我用于LineNumbersView.m的代码要点。