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

自定义字体搭配Size Class无法按屏幕尺寸调整问题求助

解决Xcode7中自定义字体结合Size Class不生效的问题

嘿,我之前在Xcode7里也踩过一模一样的坑,自定义字体在Size Class下死活不跟着屏幕尺寸变字号,折腾了好一阵才搞定。下面一步步帮你排查解决:

第一步:先确认自定义字体的导入完全正确

这是最容易忽略的基础坑,很多时候字号不生效根本不是Size Class的问题,是字体压根没被正确加载:

  • 拖字体文件(.ttf/.otf)进Xcode时,一定要勾选Copy items if needed,并且确保你的Target在「Add to targets」里被选中。
  • 去Target的Build Phases -> Copy Bundle Resources里检查,你的字体文件必须在列表里,没有的话手动加进去。
  • 打开Info.plist,添加Fonts provided by application(也就是UIAppFonts)数组,把字体的完整文件名(包括后缀,比如MyCustomFont-Regular.ttf)加进去。
  • 验证字体是否能被识别:在ViewController的viewDidLoad里加一行代码打印字体家族:
    print(UIFont.familyNames())
    
    运行后在控制台找你的字体家族名(比如文件名是MyCustomFont-Regular.ttf,家族名可能是MyCustomFont),这一步很关键——Storyboard里选字体时必须选对这个家族名,别选错成系统字体了。

第二步:正确用Size Class设置自定义字体字号

字体加载没问题后,就可以在Storyboard里配置不同Size Class的字号了:

  1. 选中你要设置的Label(或其他文本控件),打开Attributes Inspector。
  2. 先在默认的Size Class(比如Compact Width/Any Height,对应iPhone竖屏)下,选对自定义字体的家族和样式(比如Regular),设置好适合iPhone的字号。
  3. 点击字号输入框旁边的+号,添加新的Size Class配置:
    • 比如要给iPad设置更大的字号,就选择Regular Width | Regular Height(对应iPad横竖屏),然后修改字号为更大的数值。
    • 注意:不要在新的Size Class下重新选择字体,只需要修改字号就行!如果重新选字体,会覆盖全局的字体设置,导致其他Size Class下的字体变回系统字体。
  4. 用Storyboard的预览功能(右下角的「Preview」按钮)切换iPhone和iPad预览,确认字号是否变化。

第三步:解决Xcode7的缓存问题

Xcode7的缓存有时候会抽风,导致字体或Size Class的设置不生效:

  • 先执行Product -> Clean Build Folder(按住Option键点Product就能看到这个选项)。
  • 然后重启Xcode,再重新运行项目。

额外排查点

如果还是没生效,检查这几点:

  • 控件的Font属性是不是被设置成了System Font?一定要确保是你导入的自定义字体。
  • 是不是选错了Size Class?比如iPhone横屏(除了6+)是Compact Width | Compact Height,如果要适配横屏,别忘了给这个Size Class也设置字号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:06:27