iOS应用中的自定义字体

时间:2014-03-17 10:15:28

标签: ios objective-c fonts

我正在尝试为我的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);
        }
    }

我不明白为什么它不起作用。所以如果你能帮助我的话!

4 个答案:

答案 0 :(得分:3)

我希望您已完成以下步骤:

  1. 在Xcode项目中添加字体作为资源(您已经提到过要这样做)
  2. 在plist文件键中添加文件名(包括扩展名)"应用程序提供的字体" enter image description here
  3. 检查文件是否包含在"复制捆绑资源"在Build Phases
  4. 下的Xcode项目属性中

    如果完成上述所有操作,那么您所犯的错误就是字体的名称将是" 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;
    }
    

答案 1 :(得分:0)

您说您已将字体名称添加到plist。但是,您需要将文件名添加到plist,而不是字体名称。希望这会有所帮助。

答案 2 :(得分:0)

可能重复:

Can I embed a custom font in an iPhone application?

检查samvermettes答案。

确保使用正确的系列名称,这不是字体的名称,而是安装字体时显示的名称,这可能会有所不同。如果在计算机上安装字体,可以在那里检查名称。

答案 3 :(得分:-2)

你应该在plist文件中的“应用程序提供的字体”下添加字体名称然后(如果不存在请添加)

#define Font_Gotham_Book(s) [UIFont fontWithName:@"Gotham-Book" size:s];

使用,

lbltest.font = Font_Gotham_Book(15);