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

Xamarin.iOS中FontAwesome Pro三种字体无法同时激活的问题求助

解决Xamarin iOS中FontAwesome Pro多版本同时生效的问题

我之前也踩过这个坑!FontAwesome Pro的三个版本虽然共享同一个字体系列名,但每个字重其实对应着独立的字体标识符——关键是要找到每个版本对应的具体字体名称,而不是只用字体系列名Font Awesome 5 Pro来调用。下面是一步步的解决办法:

1. 确认字体文件的项目配置

首先确保三个字体文件(Light、Regular、Solid)都正确导入到Xamarin iOS项目中:

  • 将字体文件拖到项目的Resources文件夹(或你指定的资源目录)
  • 选中每个字体文件,在属性面板设置Build Action为BundleResource
  • 打开Info.plist,添加Fonts provided by application数组项,把三个字体的完整文件名(包括后缀)都加进去,比如:
    • Font Awesome 5 Pro-Light.otf
    • Font Awesome 5 Pro-Regular.otf
    • Font Awesome 5 Pro-Solid.otf

    注意:iOS对文件名大小写敏感,一定要和实际文件的名称完全一致!

2. 找到每个字体的具体调用名称

FontBook显示的字体系列名不代表实际可调用的字体名称,我们可以通过代码打印出设备上所有可用的字体,找到每个FontAwesome Pro版本对应的准确名称:

在AppDelegate.cs的FinishedLaunching方法里添加这段代码:

foreach (var familyName in UIFont.FamilyNames)
{
    Console.WriteLine($"字体系列: {familyName}");
    foreach (var fontName in UIFont.FontNamesForFamilyName(familyName))
    {
        Console.WriteLine($"  字体名称: {fontName}");
    }
}

运行项目后,在输出窗口里找到Font Awesome 5 Pro系列下的三个具体字体名称,通常会是类似这样的格式:

  • FontAwesome5Pro-Light
  • FontAwesome5Pro-Regular
  • FontAwesome5Pro-Solid

3. 正确调用对应版本的字体

拿到准确的字体名称后,就可以直接用UIFont.FromName调用对应版本了:

// 使用Light版本
var faLightFont = UIFont.FromName("FontAwesome5Pro-Light", 24);
// 使用Regular版本
var faRegularFont = UIFont.FromName("FontAwesome5Pro-Regular", 24);
// 使用Solid版本
var faSolidFont = UIFont.FromName("FontAwesome5Pro-Solid", 24);

这样就能在项目中同时使用FontAwesome Pro的三个版本了,再也不会出现只能用一种的情况~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:47:54