无法在iOS应用程序中使用自定义字体

3

我想为我的iOS应用程序使用自定义字体。以下是我的做法:

我将自定义字体(m.tff)添加到Xcode支持文件目录中。同时,在myApp.plist中创建了一个名为“Fonts provided by application”的条目,其值为字体的名称(m.tff)。

在我的视图中,我有一个标签。

UILabel *label = [[UILabel alloc]initWithFrame:CGRect(10, 20, 230, 30)];
label.font = [UIFont fontWithName:@"My custom font" size:15];

问题在于当我启动应用程序时,标签中的文本使用的是默认字体,而不是特定字体。

我错过了什么吗?

编辑

好像现在可以工作了,但是该字体仅适用于像“,?”这样的字符,而不适用于字母。 我正在使用西里尔字母。

6个回答

9
使用此方法获取所有可用的字体。
  // List all fonts on iPhone
  NSArray *familyNames = [[NSArray alloc] initWithArray:[UIFont familyNames]];
  for(NSString *familyName in familyNames)
  {
    NSLog(@"family: %@", familyName);

    NSArray *fontNames = [[NSArray alloc] initWithArray:[UIFont fontNamesForFamilyName:familyName]];
    for(NSString *fontName in fontNames)
    {
      NSLog(@"    font: %@", fontName);
    }
  }

查找您嵌入的字体,确认名称是否相同。


4

字体扩展名应该是ttf而不是tiff

然后在plist中进行条目设置

应用程序提供的字体 Font.ttf


1
原帖现已被编辑,将“.tiff”更改为“.tff”(这仍然是不正确的)。现在Luke的答案可能是最合适的。 - Michael Dautermann
是的,它是不正确的,应该是ttf(True Type字体),而不是tff。 - Piyush Kashyap

2
在您的Info.plist文件中,添加键:Fonts provided by application,并设置一个数组对象,将数组项设置为以下字符串:
MyFont.ttf

当你设置标签的字体时,需要确保 MyFont 与你在 Mac 应用程序“字体册”中列出的字体名称完全一致。使用 Spotlight 启动字体册,然后找到你的字体文件以双重检查名称。

接着将字体设置为你的标签:

myLabel.font = [UIFont fontWithName: @"MyFont" size: someFloatValue];

你的字体文件是否包含你想要使用的字符? - Luke

2

请检查您的[UIFont fontWithName:@"My font" size:15]代码是否返回了一个非空的UIFont对象。


我喜欢@Piyush的答案。给他+1。 - Michael Dautermann
我修改了我的回答,因为你修改了问题,你这个狡猾的家伙。 :-) 我最初的问题指出了你复制和粘贴代码中的拼写错误。 - Michael Dautermann

0
  1. 确保您的字体在 info.plist 文件中(由应用程序提供)
  2. 在“构建阶段”选项卡中选择目标,点击“复制捆绑资源”,添加您的字体。

0

m.tiff 不像是支持的字体文件,即 TrueType 或 OpenType。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接