objective-c – 使用时出现错误字距 – [NSString drawInRect:withAttributes:]

objective-c – 使用时出现错误字距 – [NSString drawInRect:withAttributes:],第1张

概述当使用 – [NSString drawInRect:withAttributes:]时,主要是在使用内置的Helvetica Neue以及其他字体时,字距调整非常糟糕.但是,当在Text Edit(使用NSTextView)中呈现相同的字符串时,字距调整很棒.考虑这两个字符串: 对于小点大小,第一种情况(在Cocoa中呈现)几乎难以辨认,而第二种情况(来自文本编辑)要好得多.我认为这里根本没有使 当使用 – [Nsstring drawInRect:withAttributes:]时,主要是在使用内置的Helvetica Neue以及其他字体时,字距调整非常糟糕.但是,当在Text Edit(使用NSTextVIEw)中呈现相同的字符串时,字距调整很棒.考虑这两个字符串:

对于小点大小,第一种情况(在Cocoa中呈现)几乎难以辨认,而第二种情况(来自文本编辑)要好得多.我认为这里根本没有使用字距调整信息.如果我应用值为0.0的NSKernAttribute(根据文档关闭字距调整),我得到相同的结果,顶部的那个.

我也尝试过使用带有CTlineDraw的Core Text,但仍然有很糟糕的字距.所以我的问题是,在Cocoa文本系统中启用字距调整是否需要做些什么?如果没有,NSTextVIEw如何应用字距调整?

解决方法 顶部的例子是“更紧”,底部的例子是’更宽松’看 – [NSTextVIEw tightenKerning],– [NSTextVIEw loosenKerning]. Apple在这里混淆地称其他人称之为“跟踪”为“Kerning”即.在字体中指定的“字符前进”之后,在每个字形之间均匀地应用恒定量的额外空间(正或负),以使文本显示,更好,更紧或更松散.

默认的“紧密度”或“松散度”是渲染引擎的属性,而不是字体,并且在不同的OSX版本,应用程序或UI元素之间可能很容易区分.

在字体中,字距调整表用于调整特定字形对所需的字符前进,例如,在我的假设字体中:’AV’被列为字距对 – 当字符时’A’应该具有较小的前进跟随它是’V’.

OSX字体Helvetica和HelveticaNeue(以及许多其他字体)根本没有字距调整信息,因此您的示例中没有使用字距调整信息.

如果字体没有字符串信息,那么您的问题是“我如何在Cocoa文本系统中启用字距调整?”没有意义或不代表你认为它意味着什么(?).

总结

以上是内存溢出为你收集整理的objective-c – 使用时出现错误字距 – [NSString drawInRect:withAttributes:]全部内容,希望文章能够帮你解决objective-c – 使用时出现错误字距 – [NSString drawInRect:withAttributes:]所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1009302.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-22
下一篇2022-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存