我正在尝试在iPhone上使用一组Neo Sans Pro字体。我有四个字重:Light,Regular,Medium,Bold作为OTF文件(NeoSansPro-Light.otf,-Regular.otf等)。这些文件已包含在构建中,并在info.plist中注册。
调用
我可以使用
然而,当我使用它们绘制文本时,Light,Regular和Medium版本都完全相同,并且看起来像Light版本。Bold版本则有所不同。
根据Font Book,每个字体文件确实包含不同的字形。
我完全被卡住了 - 有什么线索我需要做什么?
[添加] 进一步调查:
运行此代码将生成以下日志输出:
调用
[UIFont fontNamesForFamilyName:@"Neo Sans Pro"]
将返回一个带有4个条目的数组,例如“NeoSansPro-Light”。我可以使用
UIFont fontWithName:size:
为每个字符串检索字体对象。然而,当我使用它们绘制文本时,Light,Regular和Medium版本都完全相同,并且看起来像Light版本。Bold版本则有所不同。
根据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
因此,显示相同的三种字体实际上是相同的。但是在构建中有四种字体重量和四种字体。