如何使用字体显示图标?iOS

3

我收到了一个文件(请查看附件),其中包含字体,这个字体根据代码编号应该显示图标。但是我无法成功地使用该字体显示任何图标。以下是我的代码:

    iconTest = UILabel();
    iconTest.frame = CGRectMake(0, 0, 100, 100);
    onTest.center = self.view.center;

    iconTest.font = UIFont(name: "icomoon", size:16.0);
    iconTest.text = "e906";

使用字体显示图标的正确方式是什么?

下载字体 SVG 文件

5个回答

7

您需要设置文本属性,例如:

iconTest.text = "\u{e906}";

不要忘记在应用中注册自定义字体


2
请按照以下步骤操作:
  1. 双击安装字体

  2. 将字体拖放到Xcode中,并确保它们已添加到目标中(勾选如有必要复制项目)。

  3. info.plist中,设置键应用提供的字体并为项目(在键下)添加字体名称

  4. 在Storyboard中将控件的字体类型设置为自定义,或者通过编程为UILabel指定字体。

代码:

   //In swift 3
   let font = UIFont(name: "iconmoon", size: 15)
    btnSignout.setTitle("\u{e913}", for: UIControlState.normal) // set font icon on UIButton
    btnSignout.titleLabel!.font =  font

   // In objectiveC
   _lbl.text =  [NSString stringWithUTF8String:"\ue92e"]; // set font icon on UILabel
   _lbl.font =  [UIFont fontWithName:@"iconmoon" size:16];

注意:必须使用\u前缀,例如unicode e626,标签文本应为\ue626\u{e626}

0

虽然它不是IcoMoon,但这个库值得注意:https://github.com/0x73/SDevIconFonts

它集成了FontAwesome、Ionicons、Octicons和Iconic作为图标字体。

只需简单地分配代码即可:

label.font = UIFont.iconFontOfSize(.FontAwesome, fontSize: 50.0)
label.text = String.fontAwesomeIconWithName(.Twitter)

如前所述,您必须在应用程序的Info.plist中注册字体文件。

无论如何,关于IcoMoon:我会将上述库用作起点。在分支(或更好地作为拉取请求)中添加IcoMoon应该相当容易(*)。

(*) 从技术上讲,像.Twitter这样的方便快捷方式列表的添加在我查看https://github.com/0x73/SDevIconFonts/blob/master/SDevIconFonts/Classes/FontAwesome.swift时是一项相当昂贵的任务。


0

我在一些项目中使用图标字体。我创建了一个项目,以便更轻松地使用图标字体。该项目的README是用中文编写的。但演示项目将清晰地展示所有内容。https://github.com/JohnWong/IconFont

通常通过设置文本来在UILabel中使用图标字体。但我认为从字体创建UIImage更加灵活。这就是我创建此项目的原因。 通过设置项目注册字体的方法在martin提供的答案中。这里有一种通过代码注册字体的方法:https://github.com/JohnWong/IconFont/blob/master/IconFont/TBCityIconFont.m#L16


0

Icomoon.swift:使用Icomoon字体与Swift - 为每个图标自动生成类型安全的枚举。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接