添加带文件夹引用的自定义字体

时间:2015-08-22 10:05:04

标签: ios objective-c xcode uifont

是否可以从引用的文件夹(蓝色文件夹)中添加自定义字体? My project structure Reference in my Info.plist PCH file
通过这样做,我的字体在应用程序中无法识别。我错过了什么...?非常感谢!

编辑: @Simon Degn: 它也不会这样工作。

我从Info.plist中删除了路径: My Info.plist without path reference

从我的PCH: PCH File

当我启动应用程序时,我有6个异常上升而没有消息: Exception

为了您的信息,我之前使用的是未引用的文件夹(黄色文件夹),它运行良好。我想从现在开始切换到引用的文件夹模式。如果可能的话。

2 个答案:

答案 0 :(得分:3)

不确定回复是否为时已晚,但你几乎就在那里。

在info.plist中指定字体时,您需要将其指定为以下内容(其中Assets/Font/Averia_Sans_Libre是文件夹引用前缀)

Assets/Font/Averia_Sans_Libre/*.ttf

加载应用程序时,如果运行以下命令,则可以查看字体是否已加载:

NSLog(@"All fonts: %@", [UIFont familyNames].description);

然后使用字体,请使用以下字体名称,而不是字体文件名(这是您在上面的示例中所做的)。

[UIFont fontWithName:@"Averia Sans Libre" size:@"15"];

您可以使用Simon Degn(下文)提供的示例找到字体名称

答案 1 :(得分:-1)

是的 - 忽略这条路。您只需要在plist中包含文件名。

运行此选项以验证是否包含该字体:

NSArray *fontFamilies = [UIFont familyNames];

for (int i = 0; i < [fontFamilies count]; i++)
{
    NSString *fontFamily = [fontFamilies objectAtIndex:i];
    NSArray *fontNames = [UIFont fontNamesForFamilyName:[fontFamilies objectAtIndex:i]];
    NSLog (@"%@: %@", fontFamily, fontNames);
}

这将显示字体的名称,当您使用该字体时,将在代码中使用该字体。