如何从这里获取角色:http://fontello.com/并在原生iOS 7应用程序中使用它以在UILabels或UITextViews中使用?
这是否适用于NSAttributedString?
任何人都有做这类工作的例子吗?
感谢
答案 0 :(得分:4)
这没关系,有或没有NSAttributedString
。您可以将NSFontNameAttribute
应用于特定范围,也可以只在font
上分配UILabel
属性。自定义字体与任何其他类型的字体没有什么不同(稍等一点......)。
所以基础知识。创建您的字体文件。你关心的作品是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
并正确设置每个范围的字体。
答案 1 :(得分:1)
在Swift中,步骤完全相同,但最终的代码现在看起来像这样:
self.label.text = "Hey! \u{E800}"