无法为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大部分时间都不能正确导入自定义字体:
我有字体的工作:
示例代码: 这里
- 转到您项目的
info.plist
文件, - 右键单击并select
Add row
, - 在新行中键入
Fonts provided by application
, - input所需的字体名称作为此项的项目。
- 将字体文件拖放到项目中,
- 将其应用到您想要的文本:
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)") } }
您将在控制台日志中拥有所有的字体名称,只需在代码中复制并粘贴所需的字体。