【问题标题】:Using fontello fonts in native iOS7 app在原生 iOS7 应用中使用 fontello 字体
【发布时间】:2013-10-22 11:28:50
【问题描述】:

我将如何从此处获取一个字符:http://fontello.com/ 并在本机 iOS 7 应用程序中使用它以用于 UILabels 或 UITextViews?

这是 NSAttributedString 的适当用途吗?

谁有做这种工作的例子?

谢谢

【问题讨论】:

    标签: ios fonts nsattributedstring


    【解决方案1】:

    不管有没有NSAttributedString,这都很好。您可以将NSFontNameAttribute 应用于某些范围,或者您可以只在UILabel 上分配font 属性。自定义字体与任何其他类型的字体没有什么不同(有点……稍后再说)。

    所以基础知识。创建你的字体文件。您关心的部分是 TTF(True Type 字体)。将其复制到您的应用程序中,并确保它在“复制”阶段被复制。 (如果您将其放入应用程序并将其添加到目标,它会自动执行此操作。)

    将其添加到目标的信息窗格中。这是“应用程序提供的字体”设置,它是一个数组:

    然后你就可以加载字体了:

    self.label.font = [UIFont fontWithName:@"myfont" size:14.0];
    

    请记住,Info 中的名称是文件名。 fontWithName:size: 中的名称是字体名称。它们可能不同,尤其是当您重命名文件时;不会重命名字体。

    Fontello 会告诉您每个字形的代码。如果它显示 U+E800,您可以将其放在 NSString 中作为 @"\ue800"

    您可能会创建其中不包含每个字符的字体(内置字体也会发生这种情况,但您通常不会注意到或担心它)。您可以轻松地将这些内容混合到“普通”文本中,例如:

    self.label.text = @"Hey! \uE800";
    

    如果 iOS 在您的字体中找不到 H 的字符,它将回退到默认字体。您可能需要更多的控制权,以便您可以混合和匹配字体,并为每个字符选择正确的字体。如果您想要这种控制,请参阅 WWDC 2013 中的 Session 223: Using Fonts with Text Kit。其中一些仅适用于 iOS 7。在 iOS 6 中,您可能必须使用 NSAttributedString 并正确设置每个范围的字体。

    【讨论】:

      【解决方案2】:

      在 Swift 中,步骤完全相同,但最终代码现在如下所示:

      self.label.text = "Hey! \u{E800}"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-01-30
        • 2013-10-02
        • 1970-01-01
        • 2017-11-02
        • 2018-07-20
        • 2022-01-18
        • 1970-01-01
        相关资源
        最近更新 更多