使用自定义字体的实现

项目中要使用自定义自定义字体,中间没遇到大坑,也不难,但还是总结

获取一下系统中所有自带字体

很简单,就当先抛个砖头了

NSArray *fonts = [UIFont familyNames];
for (NSString *font in fonts) {
    NSLog(@"%@",font);
}

方法一

简单的直接引用,这里我找了 华文行楷(我最喜欢的字体)的字体来做例子。

步骤一

直接将字体文件拖入我们的项目中


使用自定义字体的实现_第1张图片
步骤一
步骤二

在Info.plist文件中添加 Fonts provided by application ,这是一个数组类型,将字体文件名添加到item中

步骤二

这里需要注意的是添加字体文件名的时候记得把后缀名带上

步骤三

添加字体文件 TARGETS -> Build Phases -> Copy Bundle Resources

使用自定义字体的实现_第2张图片
步骤三
步骤四

使用代码来使用字体,使用了方法+ (nullable UIFont *)fontWithName:(NSString *)fontName size:(CGFloat)fontSize;
这里需要注意的是这里的fontName不能写 华文行楷,应为这仅仅是字体的文件名,而不是字体名,那么如何获取字体名呐?其实很简单,我们只需要在MacOS下双击字体文件,就可以看到字体名了。

使用自定义字体的实现_第3张图片
步骤四
customLabel.font = [UIFont fontWithName:@"STXingkai" size:20];

这样就搞定了。

方法二

步骤一二三都和方法一是一样的,只不过步骤四我们可以使用代码来获取字体名

- (UIFont *)customFont
{
    NSString *fontPath = [[NSBundle mainBundle]pathForResource:@"华文行楷" ofType:@"ttf"];
    NSURL *fontURL = [NSURL fileURLWithPath:fontPath];
    CGDataProviderRef fontDataProvider = CGDataProviderCreateWithURL((__bridge CFURLRef)fontURL);
    CGFontRef fontRef = CGFontCreateWithDataProvider(fontDataProvider);
    CGDataProviderRelease(fontDataProvider);
    NSString *fontName = (__bridge NSString *)CGFontCopyFullName(fontRef);
    UIFont *font = [UIFont fontWithName:fontName size:20];
    CGFontRelease(fontRef);
    return font;
}

设置字体

customLabel.font = [self customFont];

Demo的 github地址

你可能感兴趣的:(使用自定义字体的实现)