美文网首页
Swift动态加载字体(不写plist)

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

作者: 木子F | 来源:发表于2018-05-09 15:28 被阅读197次

想弄一个动态加载字体的功能,结果网上翻来翻去没有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)

相关文章

网友评论

      本文标题:Swift动态加载字体(不写plist)

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