美文网首页iOS自我学习库
iOS下载使用自定义字体

iOS下载使用自定义字体

作者: 削土豆的剑客 | 来源:发表于2017-05-08 15:16 被阅读381次

    使用内置字体就不说了,这里说一下如何下载并使用自定义的字体
    第一步,下载字体
    首先得要下载ttf文件,下面代码中的dict为

    {
        id = 23eb3318ae46465f8ffe52e74fb68751;
        name = "\U534e\U5eb7\U53ef\U7231\U82f1\U6587\U4f53";
        url = "font/2017/04/19/90f8f66d94fe43578bd477700c6de98a.ttf";
    }
    

    则URL应为:http://www.zume100.com:8091/app/font/downloadFont?id=23eb3318ae46465f8ffe52e74fb68751
    下载时要导入第三方库#import "AFNetworking.h"

      NSString * url = [NSString stringWithFormat:@"%@/font/downloadFont?id=%@",[ZumeSysConfig getServerUrl],[dict objectForKey:@"id"]];
      NSURL * URL = [NSURL URLWithString:url];
      NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
      AFURLSessionManager * manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];
      NSURLRequest *request = [NSURLRequest requestWithURL:URL];
      NSURLSessionDownloadTask *_downloadTask;
      _downloadTask = [manager downloadTaskWithRequest:request progress:nil destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) {
                        NSString *cachesPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
                        NSString * str = [dict objectForKey:@"name"];
                        NSString *path = [cachesPath stringByAppendingPathComponent:str];
                        return [NSURL fileURLWithPath:path];
                    } completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) {
                        NSString *imgFilePath = [filePath path];
                    }];
                        [_downloadTask resume];
                }
    

    下载完成,文件地址是imgFilePath
    第二部,使用ttf

     NSString *imgFilePath = [filePath path];
     NSURL *fontUrl = [NSURL fileURLWithPath:imgFilePath];
     CGDataProviderRef fontDataProvider =  CGDataProviderCreateWithURL((__bridge CFURLRef)fontUrl);
     CGFontRef fontRef = CGFontCreateWithDataProvider(fontDataProvider);
     CGDataProviderRelease(fontDataProvider);
     CTFontManagerRegisterGraphicsFont(fontRef, NULL);
     NSString *fontName = CFBridgingRelease(CGFontCopyPostScriptName(fontRef));
     label.font = [UIFont fontWithName:fontName size:24];
    

    上面的fontName就是对应下载ttf文件的字体,这样就能直接使用了

    相关文章

      网友评论

      • Monster_Lai:你好 我下载字体到document自己创建的一个文件夹中 但是使用该字体无效。这个字体的路径是有什么要求吗?
        削土豆的剑客:应该是没要求的,你在文件路径看一下有没有下载成功
      • 卓敦:楼主,我要怎么判断这个字体文件是否已经下载过呢,有没有在缓存里面,有的话就直接使用不用下载
        削土豆的剑客:@卓敦 是的
        卓敦:@削土豆的剑客 你文章最下面的那段代码是注册字体吗,是每次使用都要注册一次吗
        削土豆的剑客:@卓敦 这个字体文件不是系统自带的,下载前根据文件名在沙盒找,找到就直接用,没有就下载,因为文件都是下载到沙盒里的
      • afe14121f6b2:为什么我一赞赏就把我的微信挂上去了?
        削土豆的剑客:@afe14121f6b2 不清楚。。。。。
      • c2da15b01a90:土豆学长加油么么哒

      本文标题:iOS下载使用自定义字体

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