2013-02-16 124 views
2

按照教程here。我通过将字体复制到项目并添加到Info.plist文件来添加自定义字体。我还仔细检查并看到字体也被添加到“Build Phase”中的“Copy bundle resource”中。无法打印自定义字体,ios

然而,当我试图通过以下

- (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 (
) 

请看图像我做了什么。 enter image description here

请帮助,如果你知道我在中间缺少什么。由于

回答

2

一对夫妇的我已经在过去碰到的问题:

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

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

+0

刚刚打印出来,并得到了字体的名称是_'Montserrat粗体'_所以,姓氏是_Montserrat_。我应该使用名字(_Montserrat_)或字体(_'Montserrat-Bold'_)的名字来设置mylabel的字体 – tranvutuan 2013-02-16 03:54:41

+1

一旦你知道了姓氏(假设它是'@“蒙特塞拉特)''''', [UIFont fontNamesForFamilyName:@“Montserrat”]'列出您可以传递给' - [UIFont fontWithName:]'的字体。 – 2013-02-16 04:06:08

0

另一个常见的问题是字体文件被添加到项目中,但没有添加到目标。选择组织者中的字体文件,并在右侧的“标识和类型”检查器中检查它的目标成员资格。确保您的目标已被选中。

+0

我再次检查,它已成为目标会员... – tranvutuan 2013-02-16 03:51:09

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的名称有所不同。

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

0

试着看一下所有可用的字体:

for(NSString* family in [UIFont familyNames]) 
{ 
    NSLog(@"%@", family); 
    for(NSString* name in [UIFont fontNamesForFamilyName: family]) 
    { 
    NSLog(@" %@", name); 
    } 
} 
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);