在iOS应用程序中使用字体(ttf或odf) – 它们是否正常工作? (SourceSansPro-ExtraLight)
我在iOS应用程序中使用自定义字体的成功或失败。
我遵循这些步骤:
- 将字体拖入我的项目并复制到项目中
- 确保字体包含在构build阶段中
- 将字体名称(包括扩展名)添加到应用程序的plist文件中。 我确认我正在使用附件名称:SourceSansPro-ExtraLight.ttf
-
尝试使用字体
self.daysLeftLabel.font = [UIFont fontWithName:@“SourceSansPro-ExtraLight”size:14];
但是,只使用通用系统字体。
如果我在我的代码中运行这个代码示例:
for (NSString* family in [UIFont familyNames]) { NSLog(@"%@", family); for (NSString* name in [UIFont fontNamesForFamilyName: family]) { NSLog(@" %@", name); } }
Source Sans Pro字体家族不包括在内,所以有些东西是不行的。
事情是,我按照其他自定义TTF字体完全相同的顺序,他们按预期工作。 据我所知,我做的一切都是正确的 – 包括plist文件中经常错过的postscript名字和扩展名。
所以,我开始怀疑一些TTF字体是否与iOS兼容,而其他的则不是。 这是这种情况吗?
我也有同样的问题,你必须添加实际的文件名在info.plist文件,而不是字体名称。 在UILabel中定义字体时,你必须使用真正的字体名称。
这个问题的几个原因,你必须检查以下内容:
- 确保你勾选复制项目checkbox到destinaton的组文件夹
- 确保包含在目标中的字体。 您可以检查目标会员
- 检查您的文件是否存在于资源中 。 转到目标 – >构build阶段 – >复制包资源
-
在应用程序plist中添加您的字体
-
查找字体名称 。 它可能与文件名不一样。 所以你可以使用for循环find字体名称。
for(NSString * family in [UIFont familyNames]){NSLog(@“%@”,family);
for (NSString* name in [UIFont fontNamesForFamilyName: family]) { NSLog(@" %@", name); }
}
使用这个字体名称
label.font = [UIFont fontWithName:@“font-name”size:20];