提问人:adit 提问时间:5/13/2012 最后编辑:King-Wizardadit 更新时间:4/20/2018 访问量:35695
如何在 Xcode 项目中将 Font Awesome 与 Objective-C 或 Swift 集成和使用?
How to integrate and use Font Awesome with Objective-C or Swift in an Xcode project?
问:
所以我正在尝试使用这种字体 http://fortawesome.github.com/Font-Awesome/。我已将字体添加为资源并将其放入 plist 文件中。以下是我的使用方式:
[homeFeedButton.titleLabel setFont:[UIFont fontWithName:@"fontawesome" size:8]];
NSString *str = [NSString stringWithFormat:@"%C", @"\f030"];
但是,这是行不通的。有谁知道如何在 Xcode 项目中使用此字体?
答:
这是因为您的方法包含 unichar 的文本,而不是 NSString,后者是一个使用 %@ 的对象,它位于该点旁边,因为文本是多余的。+[NSString stringWithFormat:]
评论
NSString *str = [NSString stringWithFormat:@"%C", @"\f030"];
@"\f030"
要使用自定义字体,请确保您在 plist 和此处提供的字体名称具有相同的真实名称。我的意思是字体的名称应该与通常相同。不要尝试修改名称。检查您正在使用的字体名称是否真的是该字体的名称。
谢谢 桑杰
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]);
}
}
评论
您可以通过将文本代码字符串附加到 .\u
例如,您可以使用以下代码片段在 iOS 应用程序中使用。\f030
[[[UILabel alloc] initWithFrame:CGRectZero] setText:@"\uf030"];
评论
u
不确定你是否让它正常工作,但现在 github 上有几个不错的项目:
https://github.com/alexdrone/ios-fontawesome - 它为您提供了 NSString 的类别,该类别提供了使用 FontAwesome 的基本帮助。
和 https://github.com/leberwurstsaft/FontAwesome-for-iOS,它为您提供了一个 NSString 类别,以及一个子类:fontAwesomeIconStringForIconIdentifier
UIImageView
FAImageView
以下是单元格标签文本的示例:
cell.textLabel.font = [UIFont fontWithName:@"FontAwesome" size:12];
cell.textLabel.text = @"\uf000";
确保字体名称如上所述正确。
您还可以使用适用于 iOS 的 FontAwesome+iOS 库
那么你只需要使用这段代码:
label.text = [NSString fontAwesomeIconStringForIconIdentifier:@"icon-github"];
// or:
label.text = [NSString fontAwesomeIconStringForEnum:FAIconGithub];
FontAwesome 字体名称是这样的:FontAwesome
尝试。[UIFont fontWithName:@"FontAwesome" size:8]]
观看此视频教程可能会有所帮助:http://youtu.be/J1EHAS0icv0。
不确定这个答案是否有用,看看你发布问题的日期......但是为了帮助一个可能正在做这件事的人,
[self.homefeedbutton setTitle:@“o” forState:UIControlStateNormal]; [self.homefeedbutton.titleLabel setFont:[UIFont fontWithName:@“fontawesome” size:30]];
setTitle:@“o” o 是字体的名称,不要使用 unichar,而是将字体重命名为其他更可取的字母,例如,如果您选中 fontello.com,选择图标,然后单击自定义代码选项卡,在您的图标顶部有一个小框,将其更改为任何字母......
如果不够清楚,我会尝试用不同的方式解释。
在 Swift 中:
有关如何在 Xcode 项目中集成名为“Font Awesome”的字体的教程。
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)
评论
我用 swift 语言制作了一个库,可以轻松集成 和 。还支持 Pod。字体Awesome SwiftUILabel
UIButton
UIBarButtonItem
这可能会对其他人有所帮助......我的项目中大约有 90% 的 Font Awesome 图标在工作,除了少数我无法让它们正确显示。相反,他们会显示“...”图标。
在研究了 Objective-C 中的 unicode 字符几个小时后,我意识到我吠错了树!"..."不是 FontAwesome 图标,而是 UIKit 告诉我 UILabel 的框架太小/字体太大而无法显示文本字符串!哎呀。
下面是使用 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]];
我一直在寻找 Swift3 的辅助库,发现这是非常简单且有效的解决方案 https://github.com/Syndicode/FontAwesomeKitSwift3。它有动画,可以为像我这样的新手解释如何包含它并快速使用。
使用 XCode 的 FA 最佳解决方案:
- 从 http://fontawesome.io/cheatsheet/ 复制您想要的图标(我的意思是标记并复制图标本身):
- 然后,将标签添加到情节提要及其属性上:
- 红色 - 选择 FontAwesome 作为家庭
- 绿色 - 设置所需的大小
- 蓝色 - 将您在第 1 步中复制的内容粘贴到此处。(不要担心问号 - 在视图中,您应该正确看到它)。
就是这样。
评论
所以,我可以回答 Swift 和 Objective C 的问题。(此处使用 Swift 3.0)
添加和配置 font-awesome 文件和编辑 Storyboard
只需从这里下载 font-awesome: fontawesome.io 并将.TTF添加到您的项目中
查看下图了解更多详情...
现在是编码部分
斯威夫特 3.0
let iconUniChar: UniChar = 0xf113
textLabel.text = String(format: "%C", iconUniChar)
目标 C
_textLabel.text = [NSString stringWithFormat:@"%C", 0xf113];
而且,如果您仍然面临麻烦,这里是
整个源代码
如果有人想知道,请在 .m 文件中导入以下内容。
import "NSString+FontAwesome.h"
评论