Mal*_*Box 8 iphone fonts objective-c
我正在尝试在iPhone上运行一组Neo Sans Pro字体.我有四个权重:轻,正常,中,大胆的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);
}
Run Code Online (Sandbox Code Playgroud)
运行此代码会提供以下日志输出:
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
Run Code Online (Sandbox Code Playgroud)
所以显示相同的三种字体确实是相同的.但是构建中有四种字体权重和四种字体.
Mal*_*Box 10
看起来像这里的问题一样:在iPad应用程序中包含同一系列的多个字体
如果同一字体系列中有多种字体,iOS字体架构似乎会混淆,并且不会回传正确的字体.解决方案是手动编辑字体系列信息(使用Font Forge等不同的值.
例如,对于Neo Sans Pro Light字体,将字体系列(在PSNames和TTF名称中)设置为"NSP Light".同样适用于Neo Sans Pro Regular - > NSP Regular等.
然后,您可以通过原始名称引用字体,例如"NeoSansPro-Light"
丑陋,但它的工作原理.
归档时间: |
|
查看次数: |
6968 次 |
最近记录: |