字体不在iOS中字距调整

时间:2013-05-20 00:54:41

标签: ios fonts true-type-fonts kerning fontforge

我使用FontForge创建了一个自定义字体,以便在我的iOS应用中使用。当我在我的应用程序中使用该字体时,不会应用字距调整。有一个已知的错误,即UITextView没有应用字距调整。我在UILabel和UITextField中使用它,所以这不是问题。我的目标是iOS 5.0。

我可以在Font Book和Pages中查看字体,看看字距调整是否正常。但是,在Word for Mac中,字距调整不起作用。我在Word中启用了字距调整,但它在那里不起作用。我对Word并不那么关心。我主要希望这在iOS中运行。

我已经将字体创建为.otf和.ttf字体,并使用各种FontForge选项生成字体集。 我玩过的选项包括Apple,OpenType和OT / Old Style以及OT / DSIG。除非选中OpenType,否则Pages将为字体生成选项的所有组合正确应用字距调整。字体书只会在选中Apple时显示字距调整,而不显示任何其他内容。 我在其他论坛上看到了一些关于让字体与Word一起使用的评论,但没有关于字距调整和iOS的任何具体内容。

任何人都有经验:

1)使用FontForge为iOS应用程序在OS X上成功创建了一个kerned字体?

2)使用在Word中运行的FontForge在OS X上成功创建了一个kerned字体?这可能会让我更接近,即使你没有iOS上的字体经验。

我有一个我玩过的雕文的试用版,但我不想转移到另一个字体程序来完成这个。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

在iOS 6(及以下版本)中,像UILabelUITextViewUITextField这样的UIKit控件使用WebKit来渲染其内容。 WebKit不尊重字体的内置字距调整。 iOS 6为所有UIKit控件引入了属性文本支持。如果您设置attributedText的{​​{1}}属性而不是常规UILabel属性,那么CoreText渲染将启动,您将获得正确的字距调整。但是,在iOS 6中存在text的错误,即使设置UITextField,字体字距调整仍然会出错。

如果你真的需要在iOS 5中对标签进行适当的字距调整,那么就有很多很好的替代品。我使用TTTAttributedLabel,但OHAttributedLabel也很棒。

如果你真的需要为attributedText进行适当的字距调整,你可能会想要使用Omni的UITextField。缺点是整合到项目中很痛苦。如果你有兴趣,我最近经历了学习过程,写了lengthy tutorial