自定义字体 Xcode 4.3

Posted

技术标签:

【中文标题】自定义字体 Xcode 4.3【英文标题】:Custom Fonts Xcode 4.3 【发布时间】:2012-03-14 23:58:30 【问题描述】:

我正在尝试在我的项目中使用this font,但它不起作用。 我在我的项目中添加了 .ttf 文件,并将其名称添加到 MyApp-Info.plist 中的键下:Fonts provided by application。然后我尝试了这个:

 [_titleLabel setFont:[UIFont fontWithName:@"chalkboard" size:_titleLabel.font.pointSize]];

我还检查了字体的名称是否真的是“黑板”,它是。显示的字体仍然是 Helvetica,只是更小了。问题可能出在哪里? 提前致谢。

【问题讨论】:

自从迁移到 Xcode 4.3 后,我也遇到了这个问题。无论我做什么,都不会安装自定义字体。 【参考方案1】:

您需要使用字体名称,而不是文件名。字体名称在 ttf 文件中。

您可以在此处找到适用于 ios 的字体名称:http://iosfonts.com/

此代码将列出您应用中的所有字体名称,将其放在主控制器的 viewDidLoad 中某处,运行应用,然后在控制台中找到正确的字体名称。

NSArray *familyNames = [[NSArray alloc] initWithArray:[UIFont familyNames]];

NSArray *fontNames;
NSInteger indFamily, indFont;
for (indFamily=0; indFamily<[familyNames count]; ++indFamily)

    NSLog(@"Family name: %@", [familyNames objectAtIndex:indFamily]);
    fontNames = [[NSArray alloc] initWithArray:
                 [UIFont fontNamesForFamilyName:
                  [familyNames objectAtIndex:indFamily]]];
    for (indFont=0; indFont<[fontNames count]; ++indFont)
    
        NSLog(@"    Font name: %@", [fontNames objectAtIndex:indFont]);
    

更新。

您也可以在 Finder 中右键单击字体文件,获取信息并复制全名。但这并不总是 100%。

【讨论】:

正如我所说,我实际上使用了字体名称,我打开字体时看到的那个,它不起作用。不幸的是(尝试打开链接)我将使用的黑板字体与 iO 上安装的字体不同.. 你试过[_titleLabel setFont:[UIFont fontWithName:@"Chalkboard-Regular" size:_titleLabel.font.pointSize]]; 尝试用这个代码找出姓氏(我更新了我的答案) @Flink:您是否尝试过在 Xcode 4.3 中安装了自定义字体的字体列表代码?因为它对我没有用。 有人找到这个问题的答案吗?我在 4.3.2 上,可以确认自定义字体出现在上述字体列表代码中,但没有显示在身份浏览器的列表中。【参考方案2】:

Flinks answer 是一个方便的工具,可以检查您的字体是否正确加载。

执行以下操作:

[_titleLabel setFont:[UIFont fontWithName:@"chalkboard" size:_titleLabel.font.pointSize]];

确保您的字体包含在您的捆绑包中:

点击您的项目 转到build phases'Copy Bundle Resources'下, 确保包含您的字体

为我工作:)

【讨论】:

感谢您的回答。这是我正在寻找的“缺失的一步”。 ;-) 我多年来一直在寻找这个问题的答案!吸引我的是“复制捆绑资源”!非常感谢! 在 4.3.2 之前我从来不需要“复制捆绑资源”步骤,所以我很高兴在拔掉头发五个小时后找到了这个。 感谢复制捆绑资源。我欠你一大品脱德国啤酒;) 会一直告诉你的,谢谢 ;) 但说真的,很高兴我能帮上忙 :)【参考方案3】:

Xcode 4.3.1 自定义字体有问题。因为当我创建新项目并尝试在 Xcode 4.2.1 中添加自定义字体时没有问题。

我做了好几次。 有趣...

【讨论】:

【参考方案4】:

根据我的经验,并非“所有”字体都兼容。大多数工作,但您会遇到一些字体,无论您如何努力,由于某种原因无法通过代码识别...只是提醒任何有问题的人,请尝试另一种字体!

【讨论】:

当我尝试添加 Bitstream Vera Sans Mono 时,我以为我会遇到一个。事实证明,上述步骤非常适合将字体添加到应用程序。我在 UITableView 中显示良好,但它似乎不能作为 drawInRect 的字体选择。【参考方案5】:

    在 XCode 项目中包含字体 确保它们包含在文件检查器选项卡中的目标成员中 在项目名称 > 构建阶段 > 复制捆绑资源中包含您的字体 在您的应用程序列表中包含您的 iOS 自定义字体。添加一个名为“应用程序提供的字体”的新行,并将您的字体名称和扩展名作为参数。 找到字体的名称。 使用 UIFont 并指定字体的名称。

    UILabel *headingLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 290, 300, 30)]; headerLabel.text = @"欢迎"; headingLabel.font = [UIFont fontWithName:@"Arvo" size:14.0];

来源:http://codewithchris.com/common-mistakes-with-adding-custom-fonts-to-your-ios-app/

【讨论】:

【参考方案6】:

并非您导入的所有字体都有效。只是尝试测试另一种字体。如果它有效,则 Xcode 无法识别它。请记住,它必须在您的项目 plist 文件中,并且必须是 plist 中的“.otf”或“.ttf”之类的扩展名。并将其添加到目标下的“复制捆绑资源”中

【讨论】:

以上是关于自定义字体 Xcode 4.3的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 6 大小类中的自定义字体大小无法与自定义字体一起正常工作

Xcode:glance 或通知界面不支持自定义字体

无法在 Xcode 11 beta 中选择自定义字体?

未安装自定义字体 - Xcode 11 beta

Xcode Playground 中的自定义字体

xcode自定义字体大小