You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS中使用Swift设置自定义字体失败,求排查解决

自定义TTF字体加载失败的排查解决方法

你遇到的问题是自定义TTF字体无法被iOS项目识别,导致UIFont(name: "myFont", size: 54)返回nil,且遍历字体列表找不到目标字体,以下是几个必查的关键点:

1. 确认字体文件已关联到Target

选中你的ttf字体文件,打开右侧的File Inspector,检查Target Membership是否勾选了当前项目的主Target。如果没勾选,编译时字体不会被打包进App,自然无法加载。

2. 检查Info.plist的字体名称是否正确

Info.plist中Fonts provided by application数组里填写的必须是字体的内部真实名称,不是文件名。比如文件名是myFont.ttf,实际字体名称可能是MyFont-Regular或其他:

  • 快速查看方式:双击字体文件打开Font Book,窗口顶部显示的名称就是真实字体名
  • 命令行验证:在终端执行
    fc-scan /你的字体文件路径/myFont.ttf | grep "fullname"
    
    输出结果里的fullname字段就是你需要填进Info.plist和用在UIFont(name:)里的名称。

3. 验证字体文件的有效性

如果字体文件损坏、不完整,或者是iOS不支持的字体格式(比如部分特殊TTF变种),也会导致加载失败。可以尝试替换为官方下载的字体文件,或者用Font Book打开确认字体能正常显示。

4. 清理缓存重新编译

iOS项目的构建缓存可能会导致字体未被正确更新,执行以下操作后重新编译:

  • 按Cmd+Shift+K清理项目
  • 按Cmd+Shift+Option+K清理构建文件夹
  • 重启Xcode后重新运行项目

你之前用的字体遍历代码是正确的,排查完以上几点后,重新运行应该能在控制台输出里找到你的自定义字体:

for fontFamily in UIFont.familyNames {
    print(UIFont.fontNames(forFamilyName: fontFamily))
}

内容的提问来源于stack exchange,提问作者liangdapang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 03:24:56