FontAwesome Pro和xamarin.ios只能激活一种字体

Mar*_*n M 7 fonts xamarin.ios ios xamarin

所以我一直在寻找答案.

我无法使用FontAwesome Pro中的所有3种字体来使用我的xamarin native(iOS)来工作.

我确实用过

UIFont.FromName(fontName, size);
Run Code Online (Sandbox Code Playgroud)

但是"fontName"需要是Font的"family"名称,这是FontAwesome的一个问题,因为专业版中的所有版本都具有相同的PostScript名称.它不是文件名,它是字体的家族属性.因此,当我使用(在Mac上)Fontbook时,我可以看到fontawesome pro的所有三个版本(Regular,Light和Solid)都有相同的姓氏,即"Font Awesome 5 Pro".

所以这意味着我只能使用应用程序中的三种字体之一.

我一直在寻找一种改变格式的解决方案,但我似乎无法找到任何方法.但是,如果我可以设置我想要字体的格式,那么我想将'Light','Regular'或'Solid'定义为字体格式......

下面是Fontbook的截图(抱歉,这是丹麦语)

在此输入图像描述

Sus*_*ver 12

这些字体还定义了Postscript系列名称,您可以使用它来代替主系列名称.

我没有专业版许可证,但免费的v5显示:

  * Font Awesome 5 Free
  *-- FontAwesome5FreeRegular
  *-- FontAwesome5FreeSolid
Run Code Online (Sandbox Code Playgroud)

所以你可以:

var font = UIFont.FromName(@"FontAwesome5FreeSolid", 20);
var font = UIFont.FromName(@"FontAwesome5FreeRegular", 20);
Run Code Online (Sandbox Code Playgroud)

仅供参考:要显示这些名称,请使用以下命令:

foreach (var familyNames in UIFont.FamilyNames.OrderBy(c => c).ToList())
{
    Console.WriteLine(" * " + familyNames);
    foreach (var familyName in UIFont.FontNamesForFamilyName(familyNames).OrderBy(c => c).ToList())
    {
        Console.WriteLine(" *-- " + familyName);
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 将其留在这里以防对任何人有帮助。这个答案中的字体名称对我不起作用,但是我使用您的代码来显示名称,并发现“FontAwesome5Free-Solid”和“FontAwesome5Free-Regular”最终确实工作了。2019 年 11 月从 fontawesome 下载了这些文件。 (3认同)
  • 我发现现在免费的** Brands **集合名为““ FontAwesome5BrandsRegular”`。 (2认同)