美文网首页
iOS使用自定义字体的方法(内置和任意下载ttf\otf\ttc

iOS使用自定义字体的方法(内置和任意下载ttf\otf\ttc

作者: 伏特加 | 来源:发表于2016-06-06 14:44 被阅读1330次

提供字体文件路径,返回所需要字体:

-(UIFont*)customFontWithPath:(NSString*)path size:(CGFloat)size
{
    NSURL *fontUrl = [NSURL fileURLWithPath:path];
    CGDataProviderRef fontDataProvider = CGDataProviderCreateWithURL((__bridge CFURLRef)fontUrl);
    CGFontRef fontRef = CGFontCreateWithDataProvider(fontDataProvider);
    CGDataProviderRelease(fontDataProvider);
    CTFontManagerRegisterGraphicsFont(fontRef, NULL);
    NSString *fontName = CFBridgingRelease(CGFontCopyPostScriptName(fontRef));
    UIFont *font = [UIFont fontWithName:fontName size:size];
    CGFontRelease(fontRef);
    return font;
}

这样就不需要在plist设定任何东西,只需要得到字体库文件的路径,就可以取出对应的字体。

上面的方法对于TTF、OTF的字体都有效,但是对于TTC字体,只取出了一种字体。因为TTC字体是一个相似字体的集合体,一般是字体的组合。所以如果对字体要求比较高,所以可以用下面的方法把所有字体取出来:

-(NSArray*)customFontArrayWithPath:(NSString*)path size:(CGFloat)size
{
    CFStringRef fontPath = CFStringCreateWithCString(NULL, [path UTF8String], kCFStringEncodingUTF8);
    CFURLRef fontUrl = CFURLCreateWithFileSystemPath(NULL, fontPath, kCFURLPOSIXPathStyle, 0);
    CFArrayRef fontArray =CTFontManagerCreateFontDescriptorsFromURL(fontUrl);
    CTFontManagerRegisterFontsForURL(fontUrl, kCTFontManagerScopeNone, NULL);
    NSMutableArray *customFontArray = [NSMutableArray array];
    for (CFIndex i = 0 ; i < CFArrayGetCount(fontArray); i++){
        CTFontDescriptorRef  descriptor = CFArrayGetValueAtIndex(fontArray, i);
        CTFontRef fontRef = CTFontCreateWithFontDescriptor(descriptor, size, NULL);
        NSString *fontName = CFBridgingRelease(CTFontCopyName(fontRef, kCTFontPostScriptNameKey));
        UIFont *font = [UIFont fontWithName:fontName size:size];
        [customFontArray addObject:font];
    }
    return customFontArray;
}

相关文章

  • (iOS - Objective-C ) UIFont - 自定

    2018.9.19 参考:iOS使用自定义字体的方法(内置和任意下载ttf\otf\ttc字体文件) 没办法,就是...

  • iOS使用自定义字体的方法(内置和任意下载ttf\otf\ttc

    提供字体文件路径,返回所需要字体: 这样就不需要在plist设定任何东西,只需要得到字体库文件的路径,就可以取出对...

  • react native 添加自定义字体

    首先介绍一下OTF字体,TTF字体,TTC字体。OTF字体(OpenType)由Microsoft和Adobe公司...

  • 导入自定义字体库

    导入外部字体 otf/ttf/ttc 1.Mac电脑下搜索字体册,找到字体的otf文件 2.导出字体,将字体文件拖...

  • 面试准备——iOS开发基础

    APP相关 如何添加自定义字体到工程 文件格式一般为ttf、ttc、otf。先将字体文件加到项目中,然后在工程pl...

  • iOS使用自定义字体

    在App中使用自定义字体,进行以下4步设置即可 下载想要使用的字体文件 一般为ttf或ttc 将字体拖进工程目录 ...

  • android自定义字体

    Android O通过字体资源支持自定义字体,支持.otf(OpenType)和.ttf(TrueType)字体格...

  • iOS中使用自定义字体

    只能自己自定义字体了,下面是自定义字体的几个重要步骤: 1、下载字体资源文件(.ttf或.otf格式的文件) 比如...

  • iOS开发之字体详解---附带各种ttf

    前言: 还在为使用字体我而烦恼吗? 还在为找 ttf, otf, ttc 而烦恼吗, 不用百度,看这里就够了. 先...

  • swift 自定义字体

    w如何在项目中自定义字体 1.首先找到我们需要使用的字体文件(ttf,otf)下载到本地,并导入项目中,如图 2....

网友评论

      本文标题:iOS使用自定义字体的方法(内置和任意下载ttf\otf\ttc

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