【发布时间】:2011-10-08 00:15:46
【问题描述】:
我正在尝试让一组 Neo Sans Pro 字体在 iPhone 上运行。我有四个权重:Light、Regular、Medium、Bold 作为 OTF 文件(NeoSansPro-Light.otf、-Regular.otf 等)。这些文件包含在构建中,并在 info.plist 中注册。
调用 [UIFont fontNamesForFamilyName:@"Neo Sans Pro"] 返回一个包含 4 个条目的数组,例如“NeoSansPro-Light”。
我可以使用UIFont fontWithName:size: 检索每个字符串的字体对象。
但是,当我用它们绘制文本时,Light、Regular 和 Medium 版本都绘制完全相同,并且看起来像 Light 版本。粗体版的画法不同。
根据 Font Book,每个字体文件确实包含不同的字形。
我完全被难住了——有什么线索我需要做什么吗?
[添加] 更多调查:
NSArray *fonts = [UIFont fontNamesForFamilyName:@"Neo Sans Pro"];
for (NSString *fname in fonts) {
UIFont *font = [UIFont fontWithName:fname size:12.0];
NSLog(@"name: %@ font: %@", fname, font);
}
运行此代码会给出以下日志输出:
name: NeoSansPro-Light font: <UICFFont: 0x66304a0> font-family: "Neo Sans Pro"; font-weight: normal; font-style: normal; font-size: 12px
name: NeoSansPro-Regular font: <UICFFont: 0x66304a0> font-family: "Neo Sans Pro"; font-weight: normal; font-style: normal; font-size: 12px
name: NeoSansPro-Medium font: <UICFFont: 0x66304a0> font-family: "Neo Sans Pro"; font-weight: normal; font-style: normal; font-size: 12px
name: NeoSansPro-Bold font: <UICFFont: 0xaa06070> font-family: "Neo Sans Pro"; font-weight: bold; font-style: normal; font-size: 12px
所以显示相同的三种字体实际上是相同的。但是构建中有四种字体粗细和四种字体。
【问题讨论】:
-
也尝试作为 TTF 文件,但同样发生
标签: iphone objective-c fonts