美文网首页
使用自定义字体的实现

使用自定义字体的实现

作者: 懒得起名的伊凡 | 来源:发表于2015-12-17 14:34 被阅读137次

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

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

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

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

方法一

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

步骤一

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


步骤一
步骤二

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

步骤二

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

步骤三

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

步骤三
步骤四

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

步骤四
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地址

相关文章

网友评论

      本文标题:使用自定义字体的实现

      本文链接:https://www.haomeiwen.com/subject/wplphttx.html