使用自定义字体的实现

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

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

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

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地址

推荐阅读更多精彩内容

  • IOS使用自定义字体的实现 前言 其实一直向写点什么,但工作的忙碌,以及身体的惰性,导致一致没有机会.最近终于挤出...
    Hold_dream阅读 965评论 0 3
  • 如果用fontWithName:的话,后面的参数不能加.ttf 使用自定义字体的实现 获取一下系统中所有自带字体 ...
    老骚鹅阅读 1,988评论 0 3
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 95,486评论 9 467
  • 其实,我们的社会就是一个江湖,所谓江湖中人亦是社会中人。你饱历人世沧桑,回首金庸笔下那个江湖,就会恍然惊觉其实它一...
    陈希哲阅读 299评论 0 1
  • 熊奶奶感觉自己很孤单,儿子去远方打工了,自己又没有知心的朋友可以拉家常。每天从早到晚都是一个人。 熊奶奶每次去...
    薇薇成长小屋阅读 451评论 0 2