我该如何从这里获取一个角色:http://fontello.com/并在 native iOS 7 应用程序中使用它以在 UILabels 或 UITextViews 中使用?
这是否适合 NSAttributedString 的使用?
有人有做此类工作的例子吗?
谢谢
最佳答案
无论有或没有NSAttributedString
,这都很好。您可以将 NSFontNameAttribute
应用于特定范围,也可以仅在 UILabel
上分配 font
属性。自定义字体与任何其他类型的字体没有什么不同(有点……稍后会详细介绍)。
所以基础知识。创建您的字体文件。您关心的是TTF(True Type Font)。将其复制到您的应用程序中,并确保在“复制”阶段将其复制。 (如果您只需将其放入应用程序并将其添加到目标,它就会自动执行此操作。)
将其添加到您的目标的信息 Pane 中。这是“应用程序提供的字体”设置,它是一个数组:
然后你就可以加载字体了:
self.label.font = [UIFont fontWithName:@"myfont" size:14.0];
请记住,信息中的名称是文件名。 fontWithName:size:
中的名称是字体名称。它们可能不同,特别是当您重命名文件时;这不会重命名字体。
Fontello 会告诉您每个字形的代码。如果显示 U+E800,您可以将其作为 @"\ue800"
放入 NSString
中。
您可能会创建不包含所有字符的字体(内置字体也会发生这种情况,但您通常不会注意到或担心它)。您可以轻松地将这些内容混合到“普通”文本中,例如:
self.label.text = @"Hey! \uE800";
如果 iOS 在您的字体中找不到 H
字符,它将回退到默认字体。您可能需要更多的控制,以便您可以混合和匹配字体并为每个字符选择正确的字体。如果您想要这种控制,请参阅 Session 223: Using Fonts with Text Kit来自 WWDC 2013。其中一些仅适用于 iOS 7。对于 iOS 6,您可能必须使用 NSAttributedString
并正确设置每个范围的字体。
关于ios - 在原生 iOS7 应用程序中使用 fontello 字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19368024/