强制UIFont渲染为Monospaced

时间:2015-02-27 16:03:48

标签: ios objective-c cocoa-touch uifont

是否可以强制UIFont为等宽?

具体来说,我使用的字体不包含等宽数字(表格数字)。创建一个等宽的修改后的字体对象,并将该字体添加到属性字符串的数字段中,效果很好。

另一种解决方案可能是将自定义属性添加到属性字符串,并修改处理文本布局的内容,以便为特定范围内的字形使用固定大小。

没有工作的事情:

有许多问题建议通过覆盖-drawRect:上的-drawTextInRect:UILabel来解决类似问题(请参阅:Is it possible to alter the letter-spacing/kerning of a font with Cocoa Touch?)。这似乎是一个疯狂的解决方案,如果字符串混合使用等宽字体和非等宽字体,那将非常复杂。

还有许多问题建议,特别是关于数字,创建具有启用某些字体功能的字体描述符的字体。 (见Displaying proportionally spaced numbers (instead of monospace / tabular) on iOS)。这似乎只适用于包含这些功能的字体。我使用的字体不包括这些功能,它们没有任何效果。可以使用NSLog(@"%@", CTFontCopyFeatures ( ( __bridge CTFontRef ) myFont ));

之类的内容检查字体功能

0 个答案:

没有答案