Xcode中自定义字体无法正常显示问题求助
兄弟我太懂你卡了一周的烦躁感!IB里显示正常但运行就变方框,这绝对是iOS自定义字体的经典坑,给你列几个必查的关键点:
别把文件名当字体名! 这是90%的人栽的跟头:你拖进项目的文件名叫
XXFont-Regular.ttf,但字体内部的真实名称可能完全不一样(比如XXFontRegular不带横杠)。怎么查?用Mac的「字体册」打开这个字体文件,顶部显示的那个名称才是你代码里要写的,比如UIFont(name: "XXFontRegular", size: 17),千万别用文件名凑数!确认字体真的进了APP包:去项目的
Build Phases→Copy Bundle Resources里看看,你的字体文件是不是在列表里,而且打了勾。有时候拖文件进去Xcode没自动加,手动把字体拖进这个列表里试试。Info.plist配置不能错半分:
Fonts provided by application数组里的每一项必须是完整的文件名,包括后缀(比如XXFont-Regular.ttf),大小写、字符都要和文件名完全一致,iOS对这个校验特别严格。清缓存!清缓存!清缓存! Xcode的缓存经常搞事情:按
Cmd+Shift+K清项目缓存,再按Cmd+Option+Shift+K清Derived Data,重启Xcode后重新编译运行,说不定就好了。检查字体文件本身:有些字体文件可能有兼容性问题(比如非标准TTF/OTF),或者文件损坏。你可以换个字体文件试试,或者用在线工具转成iOS支持的标准格式。
补充一句:IB里能显示是因为它读取的是你Mac系统里安装的字体,和APP包里的字体不是一回事,所以IB正常不代表包里的字体没问题哦!
附上你提供的问题截图:
内容的提问来源于stack exchange,提问作者Harrison Paxton




