iOS启动页(Splash Screen)Label自定义字体运行时不生效问题咨询
iOS启动页自定义字体运行不生效的解决方法
这种情况我碰到过好多次,大多是字体配置环节漏了步骤或者踩了「文件名≠字体内部名称」的坑,按下面的步骤一步步排查肯定能搞定:
1. 先确认字体文件的项目配置是否完整
- 检查字体是否被添加到目标的资源拷贝列表:
打开项目的Build Phases→Copy Bundle Resources,看看peach-sundress.ttf是不是在列表里。如果没有,点击+号把它加进去——只把字体拖进项目文件夹是不够的,必须确保它会被打包到APP里。 - 检查Info.plist的字体声明:
在Info.plist里添加Fonts provided by application(或者直接用键名UIAppFonts)数组项,把peach-sundress.ttf作为数组元素加进去。这里要注意大小写完全匹配,iOS对文件名大小写是敏感的,多一个少一个字母都不行。
2. 找到字体的「内部名称」(最容易踩坑的点!)
很多人直接用文件名设置字体,但字体的内部显示名称和文件名经常不一样!比如peach-sundress.ttf的内部名称可能是PeachSundress或者Peach-Sundress-Regular,这才是iOS识别的正确名称。
怎么获取?写一段简单的代码打印所有可用字体:
// 在AppDelegate或者ViewController的viewDidLoad里加这段代码 override func viewDidLoad() { super.viewDidLoad() // 打印所有字体家族和字体名称 for familyName in UIFont.familyNames { print("字体家族:\(familyName)") for fontName in UIFont.fontNames(forFamilyName: familyName) { print(" 字体名称:\(fontName)") } } }
运行项目后,在控制台搜索peach相关的结果,找到对应的字体内部名称,比如假设是PeachSundress-Regular,这才是你要用来设置的名称。
3. 针对启动页(Launch Screen)的设置调整
如果你的启动页是用Launch Screen.storyboard做的:
- 选中Label,在Attributes Inspector里的Font选项,选择「Custom」,然后输入刚才找到的字体内部名称,而不是文件名。
- 如果你是用代码设置启动页Label的字体(比如自定义Launch Screen控制器),要确保代码里用的是内部名称:
label.font = UIFont(name: "PeachSundress-Regular", size: 24)
4. 最后做个清理验证
- 清理项目缓存:按
Command+Shift+K清理项目,再按Command+Option+Shift+K清理构建文件夹。 - 重启模拟器/设备,然后重新运行项目——有时候缓存会导致字体不加载。
- 检查字体文件是否损坏:把
peach-sundress.ttf拖进Mac的「字体册」里,如果能正常显示字体预览,说明文件没问题;如果打不开,换一个完好的字体文件试试。
内容的提问来源于stack exchange,提问作者Gaurang Chokhariya
相关产品推荐
相关产品推荐

