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应用程序中的自定义字体[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin 表单:UWP 和 Windows 8.1 中的自定义字体

Interface Builder 中的自定义字体

Xcode Playground 中的自定义字体

iPhone中的自定义字体

Android API中的自定义字体低于16?

Qt Creator IDE 中的自定义字体