无法为XCode中的UILabel设置自定义字体

我无法为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. 右键单击并selectAdd row
  3. 在新行中键入Fonts provided by application
  4. input所需的字体名称作为此项的项目。
  5. 将字体文件拖放到项目中,
  6. 将其应用到您想要的文本:

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

我想你已经错过了第五步。

更新:在执行第5步时,请记住检查将实际文件复制到项目目录中的标记:

在这里输入图像说明 记得按“command + alt + shift + K”(IRRC!)清理你的项目然后去你的项目

然后转到项目的构build阶段,并确保可以在资源文件中看到.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属性Fonts provided by application并键入您的自定义字体(字体文件的文件名)。 那么你可以使用代码示例self.someLabel.font = [UIFont fontWithName:@"JennaSue" size:14];

注意:确保在代码中使用正确的字体名称。 要做到这一点,你应该添加这种字体到你的Mac的字体书,打开字体书,select该字体,并检查正确的名称字体。

希望这可以帮助

 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]; 

如果仍然不工作看你的系统字体书,search字体和那个字体,你必须使用得到它的工作

也试试这个lblTest.font = [UIFont fontWithName:@"Jenna Sue" size:25.0];

字体可能会损坏或什么的。 我尝试了Gabriel.Massana&Neeku提供的解决scheme,并且处理了一些字体。 尝试将字体添加到您的Mac。 如果显示validation问题,最有可能它不会在你的应用程序工作。 希望这可以帮助

是现在编译源文件中可见的文件…如果是的话,那么你可能有错误的字体名称..有时字体名称是不同的,然后他们的文件名…尝试运行

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

这行代码..你将能够看到字体的实际名称,并使用该名称

这是@ Ritu在Swift 2中的答案。只要把它放在你的AppDelegate,或者ViewController的viewDidLoad方法中:

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

您将在控制台日志中拥有所有的字体名称,只需在代码中复制并粘贴所需的字体。