如何在 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/复制你想要的图标(我的意思是标记并复制图标本身):
-
然后将标签添加到情节提要及其属性:
就是这样。
如果您需要更改代码中的图标 - 您也可以将第一步粘贴到您的代码中:
【讨论】:
如何将 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 语言创建了一个库,可以轻松集成 UILabel
、UIButton
和 UIBarButtonItem
。还支持 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 集成和使用?的主要内容,如果未能解决你的问题,请参考以下文章
IOS如何在目标c中将AFNetworking添加到我的xcode项目中