2

按照这里的教程。我通过将字体复制到项目并将其添加到文件 Info.plist 来添加自定义字体。我还仔细检查并看到字体也添加到“构建阶段”的“复制捆绑资源”中。

但是,当我尝试通过以下方式打印字体名称时

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    self.myLabel.text       =   @"This is a custom font";
    self.myLabel.font       =   [UIFont fontWithName:@"Montserrat-Bold" size:36];
    NSLog(@"my font is %@",[UIFont fontNamesForFamilyName:@"Montserrat-Bold"]);
}

我得到

2013-02-15 22:20:36.014 UsingCustomFont[5064:11303] my font is (
)

请查看图像以了解我所做的事情。 在此处输入图像描述

如果您知道我在中间缺少什么,请提供帮助。谢谢

4

5 回答 5

3

我过去遇到的几个问题:

  1. 字体文件可能包含 iOS 不支持的格式的数据。根据我的经验,位图字体根本不起作用。仅加载矢量字体。

  2. 您可能使用了错误的姓氏。检查返回的数组[UIFont familyNames]以确保。

于 2013-02-16T03:42:08.537 回答
3

首先通过以下方式打印所有字体:

// get font family
NSArray *fontFamilyNames = [UIFont familyNames];

for (NSString *familyName in fontFamilyNames)
{ 
   // font names under family
   for(NSString *fontName in [UIFont fontNamesForFamilyName:familyName])
   {
       NSLog(@"Font Name = %@", fontName);
   }
}

现在,取上面代码列出的字体的确切名称。有时名称因 iOS 而异。

分配字体时,您应该使用字体名称而不是系列名称。

于 2013-02-16T04:11:35.487 回答
0

另一个常见的问题是字体文件已添加到项目中,但未添加到目标中。在管理器中选择字体文件,并在右侧的“身份和类型”检查器中检查它的目标成员身份。确保您的目标已被选中。

于 2013-02-16T03:43:44.930 回答
0

尝试查看所有可用的字体:

 for(NSString* family in [UIFont familyNames])
 {
    NSLog(@"%@", family);
   for(NSString* name in [UIFont fontNamesForFamilyName: family]) 
   {
     NSLog(@"  %@", name);
    }
 }
于 2013-02-16T04:32:39.303 回答
0

试试这个

  self.myLabel.text       =   @"This is a custom font";
  self.myLabel.font       =   [UIFont fontWithName:@"Montserrat-Bold" size:36];
  NSLog(@"my font is %@", myLabel.font.fontName);
于 2013-02-16T04:39:49.910 回答