【问题标题】:Why is the custom font not being used? Xamarin.Forms.iOS为什么不使用自定义字体? Xamarin.Forms.iOS
【发布时间】:2020-03-23 02:28:18
【问题描述】:

我现在正在使用自定义字体,目前使用的字体名为:“Yellowtail-Regular.tff”。我在我的 iOS 文件夹中创建了一个名为 Fonts 的地图,并在其中添加了 tff 文件。之后我去了我的 Info.plist 并创建了一个 Fonts provided by application 并在那里我创建了一个名为 Fonts/Yellowtail-Regular.ttf 的新字符串。

当我现在尝试这样使用它时:

<Label FontFamily = "Yellowtail" Text = "Testing my label" />

标准字体 (Helvetica Neue) 仍然保留。我也试过:

<Label FontFamily = "Yellowtail-Regular" Text = "Testing my label" />

但结果相同。

我是错过了一步还是我做错了什么?

【问题讨论】:

标签: c# ios xamarin xamarin.ios xamarin.forms


【解决方案1】:

如果您使用来自http://www.1001freefonts.com/yellowtail.fontYellowtail-Regular.ttf,那么iOS 下的字体名称将只是Yellowtail

每个平台都有不同的命名约定,所以使用Device.OnPlatform 可能看起来像:

public Label()
{
  FontFamily = Device.OnPlatform("Yellowtail", "Yellowtail-Regular", "/Assets/Yellowtail-Regular.ttf#Yellowtail-Regular");      
}

要确认您的 iOS 字体系列名称,请在 macOS 上使用 Font Book 打开您的 .ttfmacOS/iOS 将使用的名称是应用程序标题栏中的名称.

【讨论】:

  • 忠告,用Font Book打开字体。我想不通名字! :P
  • @JavierGarcíaManzano 很高兴它有帮助 ?
【解决方案2】:

有时字体册会显示带有空格的名称。

就我而言: 字体名称为:SFProDisplay-Ultralight。但是字体书显示了 名称为“SF Pro Display Ultralight”。由于此自定义字体在 iOS 中不起作用。

因此您可以使用以下代码找到正确的字体名称并将其应用到 iOS 中。 在 AppDelegate 启动方法中添加此代码。然后您可以在应用程序输出中找到可行的字体名称列表。

foreach (var family in UIFont.FamilyNames)
{
    System.Diagnostics.Debug.WriteLine($"{family}");

    foreach (var names in UIFont.FontNamesForFamilyName(family))
    {
        System.Diagnostics.Debug.WriteLine($"{names}");
    }
}

之后,您可以使用 xaml 来引用字体。

<OnPlatform x:Key="SFProDisplayUltraLight" x:TypeArguments="x:String">
    <On Platform="iOS" Value="SFProDisplay-Ultralight" />
    <On Platform="Android" Value="SF-Pro-Display-Ultralight.otf#SF Pro Display Ultralight" />
</OnPlatform>

然后将其应用于控件。

<Lable Text="Welcome" FontFamily="{StaticResource SFProDisplayUltraLight}"/>

【讨论】:

  • 这应该在文档中。我读过的所有文档都含糊不清或只有一种字体的名称,只有这正确地描述了如何获得正确的字体名称。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-27
相关资源
最近更新 更多