簡體   English   中英

無法在XCode中為UILabel設置自定義字體

[英]Unable to set custom font for the UILabel in XCode

我無法在XCode中為UILabel設置自定義字體。

這就是我嘗試過的:

  • 下載“JennaSue”字體 - http://www.dafont.com/jenna-sue.font

  • 在“支持文件”文件夾下打開“app-info.plist”

  • 使用“應用程序提供的字體”鍵在列表中添加新行

  • 在這個數組中添加“JennaSue.ttf”

  • 在這樣的代碼中使用它:

self.someLabel.font = [UIFont fontWithName:@"JennaSue" size:14];

沒有任何反應 - 默認字體是可見的。

為什么? 我究竟做錯了什么? 我該如何解決?

確保您的字體在Bundle Resources中。 出於某種原因,Xcode在大多數情況下沒有正確導入自定義字體:

在此輸入圖像描述

在此輸入圖像描述

在此輸入圖像描述

我有字體工作:

在此輸入圖像描述

示例代碼: 這里

  1. 轉到項目的info.plist文件,
  2. 右鍵單擊並選擇Add row
  3. 在新行中鍵入Fonts provided by application
  4. 鍵入所需的字體名稱作為此鍵的項目。
  5. 將字體文件拖放到項目中,
  6. 將其應用於您想要的文本:

someLabel.font = [UIFont fontWithName:@"JennaSue" size: 12.0];

我想你錯過了第5步。

更新:執行步驟5時,請記住檢查將實際文件復制到項目目錄中的標記:

在此輸入圖像描述 記得按“command + alt + shift + K”(IRRC!)來清理項目然后轉到你的項目

然后轉到項目的Build Phases,並確保您可以在資源文件中看到.ttf文件:

在此輸入圖像描述

PS我現在不在我的Mac上,所以我使用了本教程的截圖。 這就是為什么我為你的問題塗抹了不必要的線條。

檢查此代碼:

 NSArray *names = [UIFont familyNames];
 NSLog(@"Font FamilyNames : ");
 for (NSString *name in names) {
     NSLog(@"Font Family:  %@",name);
     NSArray *fontFaces = [UIFont fontNamesForFamilyName:name];
     for (NSString *fname in fontFaces) {
          NSLog(@"   %@",fname);
     }
  }

  self.someLabel.font = [UIFont fontWithName:@"use correct name" size:self.someLabel.font.pointSize];

並使用與NSLog打印的相同名稱。

向Xcode添加自定義字體后,不要忘記將字體添加到plist。 Project settings > Info > Custom IOS target properties

在此輸入圖像描述 添加屬性Fonts provided by application並鍵入您的自定義字體(字體文件的文件名)。 然后你可以使用那個代碼示例self.someLabel.font = [UIFont fontWithName:@"JennaSue" size:14];

注意:確保在代碼中使用正確的字體名稱。 為此,您應該將此字體添加到Mac的字體書,打開字體書,選擇該字體並檢查正確的名稱字體。

希望這可以幫助

self.someLabel.font = [UIFont fontWithName:@"JennaSue.ttf" size:self.someLabel.font.pointSize];

我使用了以下代碼並完成了

 UILabel * lblTest = [[UILabel alloc] initWithFrame:CGRectMake(10, 0, 200, 100)];

    lblTest.font = [UIFont fontWithName:@"JennaSue" size:25.0];
    lblTest.text = @"Hello World";

    [self.view addSubview:lblTest];

如果仍然不工作查看您的系統字體書並搜索該字體和那個字體,您必須使用它來使其工作

也嘗試這個lblTest.font = [UIFont fontWithName:@"Jenna Sue" size:25.0];

是現在在Compile Source中可見的文件...如果是,那么你可能有錯誤的字體名稱。有時字體名稱與他們的文件名不同...嘗試運行一個

for (NSString *familyName in [UIFont familyNames]) 
{ 
    for (NSString *fontName in [UIFont fontNamesForFamilyName:familyName])
    { 
       NSLog(@"%@", fontName);
    }
}

這行代碼..您將能夠看到字體的實際名稱並使用該名稱

字體可能已損壞或其他東西。 我嘗試了Gabriel.Massana和Neeku提供的解決方案,並且它使用了一些字體。 嘗試將字體添加到Mac。 如果它顯示驗證問題,很可能它不會在你的應用程序中工作。 希望這可以幫助

這是@ Ritu在Swift 2中的答案。只需將它放在AppDelegate或View Controller的viewDidLoad方法中:

let names = UIFont.familyNames()
for name in names {
   print("Font Family: \(name)")
   let fontFaces = UIFont.fontNamesForFamilyName(name)
   for fname in fontFaces {
      print("            \(fname)")
   }
}

您將在控制台日志中擁有所有字體名稱,只需在代碼中復制並粘貼所需的字體名稱即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM