2012-02-24 76 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」的擴展名。並將其添加到「複製捆綁軟件資源」目標下