自定义字体的文章网上已经非常多,笔者按照正确的流程,遇到比较诡异的情况。流程是这样:
- 将字体源文件拖入工程,确保勾选了 Target
- 在 info.plist 中添加一个数组类型关键字 "Fonts provided by application",并将源文件的名字(加后缀)添加为一项。
- 使用
let familyFonts = UIFont.familyFonts
找到新添加的字体名字 -
UIFont(name: "custom_font_name", size: 20)
初始化字体
笔者在 Demo 工程中测试,能够正确的显示新添加的字体。但是,按照该方法将字体加入项目工程,却没有效果了,familyFonts 的数量没有增加,经过一番折腾之后,发现用 UIAppFonts 替换 Fonts provided by application 作为 Key 就可以了。
查阅了下文档发现 UIAppFonts 才是真正的 Key,“Fonts provided by application” 只是在 Xcode 中可读的一种形式。照理说第二种形式会自动转换为 UIAppFonts,如果不幸无效的话,就直接使用 UIAppFonts 吧。