【问题标题】:How to integrate and use Font Awesome with Objective-C or Swift in an Xcode project?如何在 Xcode 项目中将 Font Awesome 与 Objective-C 或 Swift 集成和使用?
【发布时间】: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所有字体的系列并检查这个字体是否在控制台中打印

标签: ios objective-c swift unicode font-awesome


【解决方案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 的最佳解决方案:

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

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

  • 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

                        【讨论】:

                          猜你喜欢
                          • 1970-01-01
                          • 1970-01-01
                          • 2023-04-10
                          • 2016-07-05
                          • 2019-01-14
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          相关资源
                          最近更新 更多