我尝试按照我可以找到的所有教程进行学习,并且最接近地遵循了这一教程:
https://github.com/coolc0ders/FontAwesome5XamarinForms
但是出现的只是问号而不是图标,即使上面的示例在我运行时也对我不起作用。
我的XML如下:
<Label Text="" FontSize="20" Grid.Column="0" >
<Label.FontFamily>
<OnPlatform
x:TypeArguments="x:String"
Android="Font Awesome 5 Free-Regular-400.otf#Font Awesome 5 Free Regular"
iOS="Font Awesome 5 Free" />
</Label.FontFamily>
</Label>
我现在有一些问题。
""
还是"\uf004"
很抱歉,如果这些问题看似基本,但经过很长时间我还是无法显示图标。出现的只是一个?除了不起作用的示例外,我似乎找不到任何地方可以解释如何针对FontAwesome 5和Xamarin做到这一点。
答案 0 :(得分:3)
FontAwesome 5比FontAwesome 4复杂一点,因为您有3种字体。我已经为字体超棒的5专业版做到了这一点。
我是否需要将FontFamily设置为“ FontAwesome”
对于 iOS ,如果使用品牌集,则可以将fontfamily
设置为Font Awesome 5 Brands
,如果使用任何一种,则可以设置为Font Awesome 5 Pro
。其他3套。目前,您一次只能使用一组。我会再给你一个答案,这样您就可以在同一应用程序中使用这三套软件了。
对于 Android ,这是我的开关:
switch (awesomeStyle)
{
case AwesomeStyle.Brands:
fontFile = "fa-brands-400.ttf#Font Awesome 5 Brands";
break;
case AwesomeStyle.Light:
fontFile = "fa-light-300.ttf#Font Awesome 5 Pro";
break;
case AwesomeStyle.Regular:
fontFile = "fa-regular-400.ttf#Font Awesome 5 Pro";
break;
case AwesomeStyle.Solid:
fontFile = "fa-solid-900.ttf#Font Awesome 5 Pro";
break;
default:
throw new ArgumentOutOfRangeException();
}
对于Android和iOS,我应该使用.ttf文件还是.otf文件
我使用.ttf文件。
对于iOS,我需要编辑info.plist,如果是的话,该怎么做?
是的。将以下密钥添加到您的info.plist
文件中。在浅色,普通或纯色之间仅添加一个字符串。
<key>UIAppFonts</key>
<array>
<string>fa-brands-400.ttf</string>
<string>fa-light-300.ttf</string>
<string>fa-regular-400.ttf</string>
<string>fa-solid-900.ttf</string>
</array>
我应该将图标指定为“”还是“ \ uf004”
在xaml中,您使用""
版本。在C#中,您使用"\uf004"
版本。
对于Android和iOS d0,我需要将字体文件设置为“复制到输出目录”
没有
如何找出字体名称?我将其设置为“ Font Awesome 5 Free”,但这只是复制示例,我也无法使其正常工作。
我给你上面的名字。否则,您应该使用字体编辑器查找名称。在Windows中,您可以在字体文件的属性中找到名称,但是信息太多,应该忽略标题的最后一个单词(在“详细信息”选项卡中)。
我应该为iOS =“”指定什么,该文件名应减去.ttf(或.otf)吗? Android =呢?
见上文。
答案 1 :(得分:0)
如果要在Xamarin.IOS中使用某些Awesome字体文件,则必须知道ttf文件的“ Postscript名称” 。请看下面的图片:
iOS会通过“ PostScript名称”加载所有字体,因此,如果文件名和“ PostScript名称”不同,则应谨慎使用。
您应该下载字体查看器工具并检查此属性。并且必须将此名称分配给Xamarin.Forms或Xamarin.IOS控件的'FontFamily'或'Font'属性。
在Xamarin.Android中,操作系统不会按“ Postscript Name”(脚本名称)加载字体文件,而是直接使用文件名。
因此,我建议您将其重命名为“ PostScript名称”,就像“ FontAwesome5Pro-Light.ttf”一样。然后,您可以将'FontAwesome5Pro-Light'分配给Label或Button控件的'FontFamily'属性。
然后,您可以根据需要使用它。否则,您会看到一个小方框和一个问号。