Swift动态加载字体(不写plist)

想弄一个动态加载字体的功能,结果网上翻来翻去没有Swift版的,只能自己折腾,还好折腾两天折腾出来了(没办法,对Core Graphics不熟呀).刚学Swift,不知道这么写的对不对(可能会有对象释放的问题),望大佬看出来了指点指点~
OC版传送门: https://www.aliyun.com/jiaocheng/359216.html

    // ...读取本地字体文件
    let path = Bundle.main.path(forResource: "XXXXXX", ofType: "ttf")!
    let fontData = NSData.init(contentsOfFile: path)
    
    // ...通过CGDataProvider承载生成CGFont对象
    let fontDataProvider = CGDataProvider(data: CFBridgingRetain(fontData) as! CFData)
    let fontRef = CGFont.init(fontDataProvider!)!
    
    // ...注册字体
    var fontError = Unmanaged<CFError>?.init(nilLiteral: ())
    CTFontManagerRegisterGraphicsFont(fontRef, &fontError)

    // ...获取了字体实际名字
    let fontName:String =  fontRef.fullName! as String
    
    
    self.wordLabel.font = UIFont.init(name: fontName, size: self.bounds.width*0.8)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容