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

Xamarin iOS自定义字体无法在主Storyboard中显示的问题求助

解决Xamarin.iOS中自定义字体无法在Storyboard稳定显示的问题

我之前也碰到过一模一样的坑,自定义字体在Visual Studio的Storyboard里总是抽风,偶尔显示偶尔罢工,折腾了好久才摸清楚几个靠谱的解决办法,你可以按下面的步骤逐一排查:

1. 先确认字体的「真实内部名称」(最容易踩的坑!)

很多人以为字体文件名就是它的内部名称,但其实完全不是!比如你用的AgencyFB Bold,它的内部名称可能是AgencyFB-Bold或者Agency FB Bold(注意空格),和文件名大概率不一样。

怎么查?两个简单办法:

  • 代码打印验证:在项目里加一段代码,运行后看控制台输出的字体列表,精准找到你的字体:
    public override void ViewDidLoad()
    {
        base.ViewDidLoad();
        foreach (var family in UIFont.FamilyNames)
        {
            Console.WriteLine($"字体家族: {family}");
            foreach (var font in UIFont.FontNamesForFamilyName(family))
            {
                Console.WriteLine($"  字体名称: {font}");
            }
        }
    }
    
  • Mac上用Font Book查看:双击字体文件打开Font Book,标题栏显示的就是它的内部名称(比如「Agency FB Bold」)。

确认后记住这个名称:info.plist里的文件名要和实际文件完全匹配,而Storyboard里选字体时要选这个内部名称,不是文件名!

2. 核对Bundle资源配置的细节

虽然你已经设置了,但再仔细检查一遍,别放过任何细节:

  • 选中字体文件,在属性面板里:
    • Build Action必须是BundleResource,不能错成其他选项
    • Copy to Output Directory设为Do not copy(这个是对的,因为字体要打包进app bundle,不是复制到输出目录)
  • 打开info.plist,确认UIAppFonts(也就是「Fonts provided by application」)数组里的每一项,都和字体文件名完全匹配,包括大小写!iOS对文件名大小写敏感,AgencyFB.ttf和agencyfb.ttf会被当成两个不同的文件。

3. 彻底清理缓存(解决VS抽风的关键)

Visual Studio的缓存经常会搞事情,尤其是Storyboard相关的缓存。按这个步骤来:

  1. 完全关闭Visual Studio
  2. 删除项目根目录下的bin和obj文件夹(直接删掉就行,重新生成会自动创建)
  3. 清理Xamarin的缓存:
    • Windows:删除%LOCALAPPDATA%\Xamarin文件夹里的内容
    • Mac:删除~/Library/Caches/Xamarin文件夹里的内容
  4. 重启Visual Studio,重新生成整个解决方案,再打开Storyboard看看

4. 强制让iOS加载字体,再刷新Storyboard

有时候Storyboard编辑器没检测到新添加的字体,你可以先让App运行一次,让iOS加载字体,再回到VS:

  • 在代码里手动设置一次该字体(比如在某个ViewController的ViewDidLoad里):
    var testFont = UIFont.FromName("你的字体内部名称", 18);
    
  • 运行项目,确保App能正常启动(不用管字体是否显示在界面上,只要代码不报错就行)
  • 回到Visual Studio,关闭并重新打开Storyboard,这时候字体列表应该会更新

5. 检查字体文件是否损坏

如果上面的方法都没用,可能是字体文件本身有问题:

  • 换一个可靠的来源重新下载AgencyFB Bold字体
  • 在Mac上用Font Book打开字体,确认没有损坏(Font Book会提示字体是否有效)

按这些步骤走下来,应该能解决Storyboard里字体不显示的问题,我之前就是靠清理缓存+确认字体名称搞定的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:51:06