我在iOS项目中添加了几个Google Fonts ttf文件作为自定义字体。一切正常,我可以使用这些字体。但是,我需要区分自定义字体和iOS自动提供的字体。
我尝试将UIFont.FontNamesForFamilyName返回的文件名与Info.plist文件中的字体文件名进行比较。虽然它适用于大多数字体,但文件名并不总是与字体名称匹配;有些人可能会有下划线或短划线。由于我不能完全依赖文件名,我还有其他选择吗?
答案 0 :(得分:0)
这是一个挑战,它不是直截了当但绝对可行。
您需要知道哪个“字体名称”是开箱即用的,哪个不是。
为了发现这就是我要做的。创建一个虚拟的全新示例项目。在AppDelegate.m文件中添加此
// Get All fonts
NSArray *fontFamilies = [UIFont familyNames];
for (int i=0; i<[fontFamilies count]; i++)
{
NSLog(@"Font: %@ ...", [fontFamilies objectAtIndex:i]);
}
这将为您提供默认iOS安装的所有字体的名称。您可以将该信息存储在doc dir中的plist文件中。
现在在自定义项目中运行相同的命令。它会给你你的iOS和...你自己的自定义字体。再次将该信息存储在doc dir中的另一个plist文件中。
现在你需要做的是将这两个plist文件放在一个项目中,将每个文件读入一个数组并比较数组。这将为您提供已添加的字体以及哪些字体是开箱即用的。