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

iOS开发中如何为不同Target添加并设置对应的自定义字体

多Target下Storyboard Label自定义字体配置步骤

前置校验(必须做,90%的字体不生效问题都出在这)

  • 先确认每个ttf字体文件的Target Membership只勾选了对应需要使用的Target,不要全选所有Target,避免字体串包、安装包体积冗余。
  • 先运行代码打印当前Target下系统实际识别的可用字体名,ttf文件名≠代码/Storyboard里可调用的字体名,必须用打印出来的准确名称才能生效:
// App启动后或对应页面加载时调用,控制台会输出所有可用字体
for family in UIFont.familyNames.sorted() {
    print("字体族:\(family)")
    for fontName in UIFont.fontNames(forFamilyName: family).sorted() {
        print("  可调用字体名:\(fontName)")
    }
}

切换不同Target运行一次,分别记下来每个Target下粗体、半粗体、常规三个字重对应的准确字体名,后面配置直接用。


配置方式选择

方式1:Storyboard可视化配置(适合单Target调试用,多Target不推荐)

  • 选中需要设置的Label,打开右侧属性检查器(Attributes Inspector),找到Font选项,点击下拉菜单选择Custom
  • 在Family下拉列表里选中对应字重的自定义字体,再手动调整到你需要的字号即可
    注意:这种方式下切换Target运行时,如果当前Target没有包含Storyboard中选中的字体,系统会自动回退为默认系统字体,不会触发崩溃,但显示效果不符合预期。

方式2:代码动态配置(多Target场景首选,无回退问题)

不需要反复修改Storyboard配置,按编译Target自动匹配对应字体即可:

  • 先把Storyboard里的3个Label通过IBOutlet关联到对应控制器代码中,分别对应粗体、半粗体、常规字重的控件
  • 给每个Target设置唯一的编译标识:进入对应Target的Build Settings,搜索Other Swift Flags,给三个Target分别添加-DTARGET_A、-DTARGET_B、-DTARGET_C(名称可以自定义,保证唯一即可)
  • 在页面的viewDidLoad生命周期方法中,按当前编译的Target给Label赋值对应字体:
override func viewDidLoad() {
    super.viewDidLoad()
    // 按Target匹配对应字体,字号按你实际需求修改
    #if TARGET_A
    boldLabel.font = .init(name: "TargetA粗体字体名", size: 20)
    semiboldLabel.font = .init(name: "TargetA半粗体字体名", size: 17)
    regularLabel.font = .init(name: "TargetA常规字体名", size: 14)
    #elseif TARGET_B
    boldLabel.font = .init(name: "TargetB粗体字体名", size: 20)
    semiboldLabel.font = .init(name: "TargetB半粗体字体名", size: 17)
    regularLabel.font = .init(name: "TargetB常规字体名", size: 14)
    #else
    boldLabel.font = .init(name: "TargetC粗体字体名", size: 20)
    semiboldLabel.font = .init(name: "TargetC半粗体字体名", size: 17)
    regularLabel.font = .init(name: "TargetC常规字体名", size: 14)
    #endif
}

如果项目里Label数量多,不想逐个关联控件,可以给UILabel写分类,通过方法替换拦截awakeFromNib生命周期,根据Label默认的字重属性自动匹配当前Target下的对应自定义字体,一次配置全局生效。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 22:03:32