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

Posted

技术标签:

【中文标题】如何在 Xcode 项目中将 Font Awesome 与 Objective-C 或 Swift 集成和使用?【英文标题】:How to integrate and use Font Awesome with Objective-C or Swift in an Xcode project? 【发布时间】:2012-05-13 06:55:38 【问题描述】:

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

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

但是这不起作用。有谁知道如何在 Xcode 项目中使用这种字体?

【问题讨论】:

确保您使用的是 ttf 字体并先将其安装在您的 mac 中,然后再添加到您的项目中。 是的..我把它安装在我的mac上,它是ttf 好的,NSLog字体系列,检查你的mac安装的字体名称是否显示 我的 Mac 中似乎无法显示字体。你能尝试下载字体并试一试吗。它是免费的 我没有告诉你在你的mac上显示,我告诉你NSLog所有字体的系列并检查这个字体是否在控制台中打印 【参考方案1】:

Swift 中:

Font Awesome Cheatsheet.

Tutorial on how to integrate the font called "Font Awesome" in your Xcode project.

Common Mistakes With Adding Custom Fonts to Your ios App

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)

【讨论】:

绝对是捷径。奇迹般有效 !谢谢!【参考方案2】:

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

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

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

RED - 选择 FontAwesome 作为家庭 绿色 - 设置您想要的尺寸 蓝色 - 在此处粘贴您在第一步中复制的内容。 (不用担心问号 - 在视图中您应该可以正确看到它)。

就是这样。

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

【讨论】:

如何将 fontAwesome 作为家庭选项? 我可以看到故事板标签中的 fa-icons 发生了变化。但是,如果我运行,我的模拟器总是显示这个符号“?” .有什么想法吗?【参考方案3】:

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

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

和https://github.com/leberwurstsaft/FontAwesome-for-iOS,它为您提供了一个带有fontAwesomeIconStringForIconIdentifier 的NSString 类别以及一个UIImageView 子类:FAImageView

【讨论】:

【参考方案4】:

这是因为您的 +[NSString stringWithFormat:] 方法包含 unichar 的文字,而不是 NSString,它是一个使用 %@ 的对象,这是题外话,因为文字化文字是多余的。

【讨论】:

那么我该如何解决这个问题?我试过用 %@ 还是不行 @"\f030"代替NSString *str = [NSString stringWithFormat:@"%C", @"\f030"]; 这对我不起作用,例如 @"\f021" 打印 3 个点,而 @"\f0" 打印重新加载符号(应该是 f021)并且大多数其他字符都不存在,我只能打印很少 也许你可能会丢失@并将其打印为 C-char 为什么没有任何货币图标可用?【参考方案5】:

您可以通过将文字代码字符串附加到\u 来使用它。

例如您可以使用以下 sn-p 在您的 iOS 应用中使用 \f030

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

【讨论】:

感觉这是正确的轨道,但对我不起作用,对你有用吗? 这对我有用,因为我想使用 Flat UI Kit Icon Font (designmodo.github.io/Flat-UI) 的图标。我已经复制了图标的 CSS 值,并在前面添加了 u,如上所述。有效! :-) 经常尝试但没有成功,但最终成功了! 我想知道是否有办法从情节提要 UI 中输入它。我试图但只显示为文本。通常我们有设计师在放置图标,所以不用接触代码就可以了 @powerfade917,您可以使用情节提要 - 只需将备忘单 (fortawesome.github.io/Font-Awesome/cheatsheet) 中的图标(不是代码或 unicode)复制并粘贴到情节提要中某个内容的标签中。不要忘记将字体设置为 FontAwesome。【参考方案6】:

所以,我可以同时为 Swift 和 Objective C 回答这个问题。 (这里使用 Swift 3.0)

添加和配置字体真棒文件和编辑故事板

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

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

现在是编码部分

斯威夫特 3.0

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

目标 C

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

而且,如果您仍然面临问题,这里是

entire source code

【讨论】:

【参考方案7】:

你也可以使用库FontAwesome+iOS for iOS

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

label.text = [NSString fontAwesomeIconStringForIconIdentifier:@"icon-github"];
// or:
label.text = [NSString fontAwesomeIconStringForEnum:FAIconGithub];

【讨论】:

【参考方案8】:

下面是使用 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]];

【讨论】:

【参考方案9】:

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

【讨论】:

虽然这是一个旧答案,但它仍然帮助我解决了我的自定义字体文件没有加载的原因。结果发现字体系列名称发生了变化,而不是我在我的应用程序中使用了很长时间的名称。去搞清楚。谢谢你。【参考方案10】:

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

【讨论】:

【参考方案11】:

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

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

确保按照上面的建议获取正确的字体名称。

【讨论】:

【参考方案12】:

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

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

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

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

【讨论】:

【参考方案13】:

我用 swift 语言创建了一个库,可以轻松集成 UILabelUIButtonUIBarButtonItem。还支持 Pod。 Font Awesome Swift

【讨论】:

【参考方案14】:

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

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

【讨论】:

【参考方案15】:

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

import "NSString+FontAwesome.h"

【讨论】:

【参考方案16】:

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

谢谢 桑杰

【讨论】:

【参考方案17】:

FontAwesome 字体名称如下:FontAwesome

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

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

【讨论】:

以上是关于如何在 Xcode 项目中将 Font Awesome 与 Objective-C 或 Swift 集成和使用?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Xcode 项目中将字典数组写入 .txt 文件

如何在 Xcode 4 中将新项目添加到源代码管理?

IOS如何在目标c中将AFNetworking添加到我的xcode项目中

如何在 xcode 中将启用 ARC 的 .a 文件添加到非 ARC 项目

在 XCode 5 中将项目导入远程 SVN 服务器

如何在 Eclipse 中将“其他链接器标志”设置为 Xcode?