iOS应用程序中的自定义字体[重复]
Posted
技术标签:
【中文标题】iOS应用程序中的自定义字体[重复]【英文标题】:Custom fonts in iOS app [duplicate] 【发布时间】:2014-04-22 11:56:27 【问题描述】:我正在尝试向我的 ios 应用程序添加新字体。我已按照以下步骤操作:
将我的字体文件添加到我的“res”文件夹中 将我的完整字体名称添加到我的 plist 文件中 添加一个 UILabel 子类,代码如下代码:
- (id)initWithCoder:(NSCoder*)aDecoder
self = [super initWithCoder:aDecoder];
if (self)
[self setFont:[UIFont fontWithName:@"Gotham-Book" size:self.font.pointSize]];
return self;
但是没有显示字体...我尝试使用以下代码显示我的应用程序的所有字体,但 Gotham 没有显示...
for (NSString *familyName in [UIFont familyNames])
for (NSString *fontName in [UIFont fontNamesForFamilyName:familyName])
NSLog(@"%@", fontName);
我不明白为什么它不起作用。所以,如果你能帮助我!
【问题讨论】:
你确定你是用你的initWithCoder:
方法创建你的对象吗?也许它是用init
或其他东西创建的,这可能是未设置字体的原因。 :)
@Jissay 如果您只是将标签的类设置为您在 IB 中的自定义标签类名称,则会自动调用 initWithCoder。
哦,好吧,我还以为是别的,我学到了一些东西,谢谢!
【参考方案1】:
你应该在“应用程序提供的字体”下的plist文件中添加字体名称然后(如果不存在请添加)
#define Font_Gotham_Book(s) [UIFont fontWithName:@"Gotham-Book" size:s];
并使用,
lbltest.font = Font_Gotham_Book(15);
【讨论】:
-1 不确定这将如何解决任何问题。 最好是最佳实践,但不是问题的答案【参考方案2】:希望您已完成以下步骤:
-
在您的 Xcode 项目中添加字体作为资源(您已经提到要这样做)
在plist文件键“应用程序提供的字体”中添加文件名(包括扩展名)
检查文件是否包含在 Xcode 项目属性中 Build Phases 下的“Copy Bundle Resources”中
如果上述所有操作都完成,那么您犯的错误是字体名称将是“Gotham Book”而不是“Gotham-Book”。代码如下:
-(id)initWithCoder:(NSCoder *)aDecoder
self = [super initWithCoder:aDecoder];
if (self)
[self setFont:[UIFont fontWithName:@"Gotham Book" size:self.font.pointSize]];
return self;
【讨论】:
该文件不在“复制捆绑资源”中。现在可以了,非常感谢! 很高兴能提供帮助。一个有趣的输入:要找出正确的字体名称,在 Font Book 中打开已安装的字体,选择它并按 cmd+I。字体检查器将显示字体的全名以及许多其他有用信息。【参考方案3】:可能重复:
Can I embed a custom font in an iPhone application?
检查 samvermettes 的答案。
确保您使用的是正确的系列名称,这不是字体的名称,而是安装字体时出现的名称,这可以不同。如果你在你的机器上安装字体,你可以在那里检查名称。
【讨论】:
【参考方案4】:您是说您已将字体名称添加到 plist。但是,您需要将文件名添加到 plist,而不是字体名称。希望这会有所帮助。
【讨论】:
我添加了文件名“Gotham-Bold.ttf”以上是关于iOS应用程序中的自定义字体[重复]的主要内容,如果未能解决你的问题,请参考以下文章