iOS自定义字体

  • 对于APP中使用的字体,我们大部分都是使用系统自带的,有时候也会碰到使用一些自定义的字体,根据设计需求而定
  • 这里对自定义字体的一些介绍

一般自定义字体分为三种后缀格式:分别为:ttc、ttf、otf
a. TTC字体是TrueType字体集成文件(. TTC文件),是在一单独文件结构中包含多种字体,以便更有效地共享轮廓数据,当多种字体共享同一笔画时,TTC技术可有效地减小字体文件的大小。TTC是几个TTF合成的字库,安装后字体列表中会看到两个以上的字体
b. TTF是apple和微软共同推出的字体文件格式,TTF字体只包含一种字型
c. OTF是TTF的升级版,支持更高级特性的字体

导入自定义字体的实现方法:

1. 将字体文件添加到工程项目中
iOS自定义字体_第1张图片
image.png
2. 在Info.plist中添加字体文件的名称(带后缀)
image.png
3. 获取所添加字体的字体名称FontName
- (void)getFontNames {
    // 字体族名
    NSArray *familyNames = [UIFont familyNames];
    
    NSLog(@"familyNames-->%lu",familyNames.count);
    
    for(int i = 0; i < familyNames.count; i++) {
        NSLog(@"所有字体族名-->%@", familyNames[i]);
        
        NSArray *fontNames = [UIFont fontNamesForFamilyName:familyNames[i]];
        
        for(int j = 0; j < fontNames.count; j++) {
            NSLog(@"FontName-->%@",fontNames[j]);
        }
    }
}

打印结果:
iOS自定义字体_第2张图片
image.png

根据打印出来的字体族名查找到所添加的字体名称进行设置。

4. 设置字体 (需要获取所添加的字体名称)
static inline UIFont *cc_PuHuiTiHFont(CGFloat fontSize)
{
    // AlibabaPuHuiTiH:字体名称 ,fontSize:字体大小
    UIFont *font = [UIFont fontWithName:@"AlibabaPuHuiTiH" size:fontSize];
    if (!font) {
        font = [UIFont systemFontOfSize:fontSize];
    }
    return font;
}

static inline UIFont *cc_DINBoldFont(CGFloat fontSize)
{
    // DIN-Bold:字体名称
    UIFont *font = [UIFont fontWithName:@"DIN-Bold" size:fontSize];
    if (!font) {
        font = [UIFont systemFontOfSize:fontSize];
    }
    return font;
}
5. 实现效果
- (void)addControls {
    UILabel *lb = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 200, 100)];
    lb.textColor = UIColor.redColor;
    lb.font = cc_DINBoldFont(30);
    lb.text = @"123456";
    [self.view addSubview:lb];
    
    UILabel *lb1 = [[UILabel alloc] initWithFrame:CGRectMake(100, 210, 200, 100)];
    lb1.textColor = UIColor.orangeColor;
    lb1.font = cc_PuHuiTiHFont(30);
    lb1.text = @"123456";
    [self.view addSubview:lb1];
}

打印结果:
iOS自定义字体_第3张图片
image.png

你可能感兴趣的:(iOS自定义字体)