2012-02-24 73 views
5

我想用在我的项目this font但它不会工作。 我添加了.TTF文件在我的项目,并在关键的MyApp的-Info.plist中添加其名称:由应用程序提供的字体。然后我尝试这样的:自定义字体的Xcode 4.3

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

我还检查如果字体的名称是真正的“黑板”,它是。显示的字体还是黑体,只有较小。问题在哪里? 在此先感谢。

+0

自从转移到Xcode 4.3以来,我一直有这个问题。无论我做什么,自定义字体都不会安装。 – 2012-02-24 23:09:17

回答

32

您需要使用的字体名称,而不是文件名。字体名称在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]); 
    } 
} 

Upd。

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

+0

正如我所说的,我实际上使用了字体名称,这是我打开字体时读取的字体名称,它不起作用。不幸的是(尝试打开链接)我将使用的黑板字体与iOs上安装的不同。 – Lolloz89 2012-02-24 20:42:43

+0

您是否试过[_titleLabel setFont:[UIFont fontWithName:@“Chalkboard-Regular”size:_titleLabel.font.pointSize]] ; – Shmidt 2012-02-25 07:13:07

+0

也没有工作太.. – Lolloz89 2012-02-25 09:18:59

3

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

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

24

Flinks答案是一个方便的工具来检查您的字体是否正确加载。

执行以下操作:

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

确保您的字体包括在你的包:

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

为我工作:)

+0

感谢您的解答ame。这是我寻找的“缺失的一步”。 ;-) – 2012-04-01 00:43:46

+0

我一直在寻找这个答案这么久!这是“Copy Bundle Resources”让我感受到!非常感谢! – 2012-04-09 15:44:22

+0

快乐我可以帮助:) – Arne 2012-04-12 14:32:27

1

它的我的经验,不是所有的字体兼容。大多数工作,但你会遇到一些字体,只是由于某种原因不会被代码识别,无论你尝试多么努力...只要有人问题,只是尝试另一种字体!

+0

我想我会遇到一个,当我试图添加Bitstream Vera Sans Mono。事实证明,上述步骤非常适合将字体添加到应用程序。我在UITableView中显示得很好,但它似乎不能用作drawInRect的字体选项。 – JScarry 2013-06-19 01:08:16

1

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

    UILabel * headingLabel = [[UILabel alloc] initWithFrame:CGRectMake(10,290,300,30)];
    headingLabel.text = @“WELCOME”;
    headingLabel.font = [UIFont fontWithName:@“Arvo”size:14.0];

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

0

并非所有字体的你进口的正常工作。试着测试另一种字体。如果它有效,那么Xcode无法识别它。请记住,它必须位于您的项目plist文件中,并且必须是plist中的“.otf”或“.ttf”的扩展名。并将其添加到“复制捆绑软件资源”目标下