如何在 Xcode 项目中将 Font Awesome 与 Objective-C 或 Swift 集成和使用?

How to integrate and use Font Awesome with Objective-C or Swift in an Xcode project?

提问人:adit 提问时间:5/13/2012 最后编辑:King-Wizardadit 更新时间:4/20/2018 访问量:35695

问:

所以我正在尝试使用这种字体 http://fortawesome.github.com/Font-Awesome/。我已将字体添加为资源并将其放入 plist 文件中。以下是我的使用方式:

[homeFeedButton.titleLabel setFont:[UIFont fontWithName:@"fontawesome" size:8]];
NSString *str = [NSString stringWithFormat:@"%C", @"\f030"];

但是,这是行不通的。有谁知道如何在 Xcode 项目中使用此字体?

iOS Objective-C Swift Unicode 字体-真棒

评论

0赞 Charan 5/13/2012
确保您使用的是 ttf 字体,并先将其安装在 mac 中,然后添加到您的项目中。
0赞 adit 5/13/2012
是的。。我把它安装在我的 mac 中,它是 ttf
0赞 Charan 5/13/2012
好的,NS查看字体系列并检查您在Mac中安装的字体名称是否显示
0赞 adit 5/14/2012
我似乎无法在我的 mac 中显示字体。你能尝试下载字体并试一试吗?注册完全免费
0赞 Charan 5/14/2012
我没有告诉要在您的 Mac 中显示,我已经告诉您 NSLog 所有字体系列并检查此字体是否在控制台中打印

答:

8赞 CodaFi 5/13/2012 #1

这是因为您的方法包含 unichar 的文本,而不是 NSString,后者是一个使用 %@ 的对象,它位于该点旁边,因为文本是多余的。+[NSString stringWithFormat:]

评论

0赞 adit 5/13/2012
那么我该如何解决这个问题呢?我尝试使用 %@,但仍然不起作用
1赞 Steven Fisher 7/12/2012
代替 ,请使用 。NSString *str = [NSString stringWithFormat:@"%C", @"\f030"];@"\f030"
0赞 Ege Akpinar 12/26/2012
这对我不起作用,例如@“\f021”打印 3 个点,而@“\f0”打印重新加载符号(应该是 f021)并且大多数其他字符都不存在,我只能打印很少
0赞 CodaFi 12/26/2012
也许您可能会丢失 @ 并将其打印为 C-char
0赞 topwik 9/12/2013
为什么没有任何货币图标可用?
-1赞 Sabby 5/13/2012 #2

要使用自定义字体,请确保您在 plist 和此处提供的字体名称具有相同的真实名称。我的意思是字体的名称应该与通常相同。不要尝试修改名称。检查您正在使用的字体名称是否真的是该字体的名称。

谢谢 桑杰

2赞 Gaurav 7/12/2012 #3

NSLog 使用以下代码查看您的所有字体并提供确切的名称。

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

评论

0赞 ChrisOSX 4/20/2016
虽然这是一个古老的答案,但它仍然帮助我解决了为什么我的自定义字体文件没有加载。事实证明,字体系列名称发生了变化,而不是我在应用程序中使用了很长时间的名称。去想想。谢谢你。
7赞 Jais 10/9/2012 #4

您可以通过将文本代码字符串附加到 .\u

例如,您可以使用以下代码片段在 iOS 应用程序中使用。\f030

[[[UILabel alloc] initWithFrame:CGRectZero] setText:@"\uf030"];

评论

0赞 Ege Akpinar 12/26/2012
感觉这是正确的轨道,但对我不起作用,它对你有用吗?
0赞 mavilein 9/20/2013
这对我有用,因为我想使用平面 UI 工具包图标字体 (designmodo.github.io/Flat-UI) 的图标。我已经复制了图标的CSS值,并如上所述在前面加上了。成功了!:-)经常尝试没有运气,但这最终成功了!u
0赞 Shinya Koizumi 8/22/2015
我想知道是否有办法从故事板UI中输入它。我尝试过,但只显示为文本。通常,我们有设计师在放置图标方面的工作,所以能够在不接触代码的情况下这样做会很好
0赞 jt_uk 9/20/2015
@powerfade917,您可以使用情节提要 - 只需将备查表 (fortawesome.github.io/Font-Awesome/cheatsheet) 中的图标(不是代码或 Unicode)复制并粘贴到情节提要中某些内容的标签中即可。不要忘记将字体设置为 FontAwesome。
14赞 ocodo 3/6/2013 #5

不确定你是否让它正常工作,但现在 github 上有几个不错的项目:

https://github.com/alexdrone/ios-fontawesome - 它为您提供了 NSString 的类别,该类别提供了使用 FontAwesome 的基本帮助。

https://github.com/leberwurstsaft/FontAwesome-for-iOS,它为您提供了一个 NSString 类别,以及一个子类:fontAwesomeIconStringForIconIdentifierUIImageViewFAImageView

0赞 Kurt Madel 6/14/2013 #6

以下是单元格标签文本的示例:

cell.textLabel.font = [UIFont fontWithName:@"FontAwesome" size:12];
cell.textLabel.text = @"\uf000";

确保字体名称如上所述正确。

5赞 Néstor 3/21/2014 #7

您还可以使用适用于 iOS 的 FontAwesome+iOS

那么你只需要使用这段代码:

label.text = [NSString fontAwesomeIconStringForIconIdentifier:@"icon-github"];
// or:
label.text = [NSString fontAwesomeIconStringForEnum:FAIconGithub];
-1赞 user3210763 9/28/2014 #8

FontAwesome 字体名称是这样的:FontAwesome

尝试。[UIFont fontWithName:@"FontAwesome" size:8]]

观看此视频教程可能会有所帮助:http://youtu.be/J1EHAS0icv0

0赞 Popez del Rey 10/15/2014 #9

不确定这个答案是否有用,看看你发布问题的日期......但是为了帮助一个可能正在做这件事的人,

[self.homefeedbutton setTitle:@“o” forState:UIControlStateNormal]; [self.homefeedbutton.titleLabel setFont:[UIFont fontWithName:@“fontawesome” size:30]];

setTitle:@“o” o 是字体的名称,不要使用 unichar,而是将字体重命名为其他更可取的字母,例如,如果您选中 fontello.com,选择图标,然后单击自定义代码选项卡,在您的图标顶部有一个小框,将其更改为任何字母......

如果不够清楚,我会尝试用不同的方式解释。

18赞 King-Wizard 6/15/2015 #10

Swift 中:

字体真棒备忘单。

有关如何在 Xcode 项目中集成名为“Font Awesome”的字体的教程。

向 iOS 应用添加自定义字体的常见错误

let label = UILabel(frame: CGRectMake(0, 0, 100, 100))
label.font = UIFont(name: "FontAwesome", size: 40)
let myChar: UniChar = 0xF180
label.text = String(format: "%C", myChar)
self.view.addSubview(label)

评论

0赞 Jan 3/9/2017
绝对是快速的出路。像魅力一样工作!谢谢!
0赞 Patrik Vaberer 7/15/2015 #11

我用 swift 语言制作了一个库,可以轻松集成 和 。还支持 Pod。字体Awesome SwiftUILabelUIButtonUIBarButtonItem

0赞 jt_uk 9/20/2015 #12

这可能会对其他人有所帮助......我的项目中大约有 90% 的 Font Awesome 图标在工作,除了少数我无法让它们正确显示。相反,他们会显示“...”图标。

在研究了 Objective-C 中的 unicode 字符几个小时后,我意识到我吠错了树!"..."不是 FontAwesome 图标,而是 UIKit 告诉我 UILabel 的框架太小/字体太大而无法显示文本字符串!哎呀。

3赞 Sudheer Kumar Palchuri 9/25/2015 #13

下面是使用 FontAwesome 将图像设置为 UIButton 的代码

 UIButton *btnMenu = [UIButton buttonWithType:UIButtonTypeCustom];
 btnMenu.frame = CGRectMake(0, 0, 40, 32);
 [btnMenu setTitle:@"\uf0c9" forState:UIControlStateNormal];
 [btnMenu setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
 [btnMenu.titleLabel setFont:[UIFont fontWithName:@"FontAwesome" size:16]];
1赞 Anton 11/1/2016 #14

我一直在寻找 Swift3 的辅助库,发现这是非常简单且有效的解决方案 https://github.com/Syndicode/FontAwesomeKitSwift3。它有动画,可以为像我这样的新手解释如何包含它并快速使用。

15赞 Danielle 1/21/2017 #15

使用 XCode 的 FA 最佳解决方案:

  1. http://fontawesome.io/cheatsheet/ 复制您想要的图标(我的意思是标记并复制图标本身):

enter image description here

  1. 然后,将标签添加到情节提要及其属性上:

enter image description here

  • 红色 - 选择 FontAwesome 作为家庭
  • 绿色 - 设置所需的大小
  • 蓝色 - 将您在第 1 步中复制的内容粘贴到此处。(不要担心问号 - 在视图中,您应该正确看到它)。

就是这样。

如果需要更改代码中的图标 - 也可以将第一步粘贴到代码中: enter image description here

评论

1赞 Ben Holness 12/3/2017
你如何让 fontAwesome 作为家庭中的一个选项?
0赞 McDonal_11 9/15/2018
我可以看到故事板标签中的fa图标发生了变化。但是,如果我运行,我的模拟器总是显示这个符号“?任何想法 ?
6赞 Kirit Modi 9/26/2017 #16

所以,我可以回答 Swift 和 Objective C 的问题。(此处使用 Swift 3.0)

添加和配置 font-awesome 文件和编辑 Storyboard

只需从这里下载 font-awesome: fontawesome.io 并将.TTF添加到您的项目中

查看下图了解更多详情...

follow the sequence given in the image

现在是编码部分

斯威夫特 3.0

let iconUniChar: UniChar = 0xf113  
textLabel.text = String(format: "%C", iconUniChar) 

目标 C

_textLabel.text = [NSString stringWithFormat:@"%C", 0xf113];

而且,如果您仍然面临麻烦,这里是

整个源代码

0赞 Gangani Roshan 1/13/2018 #17

如果有人想知道,请在 .m 文件中导入以下内容。

import "NSString+FontAwesome.h"