2013-02-16 100 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);