无法在UIButton中使用自定义字体

3
我试图在我的应用程序中使用自定义字体,该字体的格式为ttf。在项目设置中,我已经像下面这样添加了字体名称。
并且我已经像下面这样将该字体添加到我的资源文件夹中。
我正在尝试使用的字体是这个:
_enterButton.titleLabel.font =  [UIFont fontWithName:@"Venus Rising" size:45.0];

如果我使用Arial或其他字体,它可以正常工作。但是当我尝试使用这个字体时,它根本不起作用。有谁能告诉我为什么?
4个回答

4
我下载了字体,但它的名称与文件名不同。请看这张图片。
此外,请不要忘记在您的应用程序的Info.plist中添加字体名称,键为“Fonts provided by application”。希望对您有所帮助! :)

如果字体样式只有常规,那我们不能将它设置为粗体吗?我正在尝试为按钮添加标题。我使用的字体已上述。它只有常规类型。 - Perseus
这是不可能的。如果字体没有粗体版本,你不能仅仅使用普通字体来加粗它。 - Dominik Hadl

2
你错过了info.plist中字体的扩展名,我的意思是在Info.plist中,“应用程序提供的字体”中,你需要设置“Venus Rising.ttf”,然后你的问题就会得到解决。

我之前尝试了很多次,有时候使用扩展名,有时候不使用。在看到你的回复后,我想知道它是如何解决的,于是我决定最后再试一次。没错,它成功了。非常感谢! - Perseus

1

我几天前遇到了同样的问题。对我来说,字体名称与ttf文件名称不同。

尝试使用此循环检查应用程序中所有可用的字体:

for (id familyName in [UIFont familyNames]) {
    NSLog(@"family name : %@",familyName);
    for (id font in [UIFont fontNamesForFamilyName:familyName]) {
        NSLog(@"    %@",font);
    }
}

在你的情况下,Venus Rising 应该出现为一个姓氏,但你在代码中应该使用的确切字体名称可能是 VenusRisingRegular 或类似的名称。

这很有帮助,不过我认为右键单击字体并获取信息更容易 - 你可以在那里找到实际名称。 :) - Dominik Hadl

0
UILabel *label1 = [[UILabel alloc] initWithFrame:CGRectMake(10, 30, 240, 40)];
[label1 setFont: [UIFont fontWithName: @"Grinched" size:24]];
[label1 setText:@"Grinched Font"];
[[self view] addSubview:label1];

UILabel *label2 = [[UILabel alloc] initWithFrame:CGRectMake(10, 80, 240, 40)];
[label2 setFont: [UIFont fontWithName: @"Energon" size:18]];
[label2 setText:@"Energon Font"];
[[self view] addSubview:label2];

请尝试这个。
它可能对你有帮助。

你给的链接看起来很酷。我以前已经解决过这个问题了。但无论如何,非常感谢,这是一个不错的博客,我读了那个主题。 - Perseus
这并没有解决他的问题,他不想使用“Grinched”或“Energon”字体。他的问题是字体的实际名称。 - Dominik Hadl
但是字体问题在这里无法解决,以下是如何将外部字体安装到我们的项目中的教程。 - Nimit Parekh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接