无法在平台 iOS NativeScript 中添加自定义字体

Mad*_*eox 3 nativescript

我已按照官方文档中的指南向我的本机脚本应用程序添加自定义字体。https://docs.nativescript.org/ui/styling#custom-fonts

字体名称是 Ubuntu,如下图所示。 在此处输入图片说明

我在我的项目的文件夹 /fonts 下添加了字体 Ubuntu.ttf,并将以下内容添加到我的 app.css 文件中:

在此处输入图片说明

.Ubuntu
{
    font-family: Ubuntu;
}
Run Code Online (Sandbox Code Playgroud)

但是,一旦对应用程序进行分层,我就看不到应用于我的标签的字体。

<Label class="Ubuntu" text="This is a test message" ></Label>
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激。

Nat*_*ael 5

啊,iOS 上美妙的字体问题。幸运的是,这是很容易解决的问题。

我实际上有一整篇关于如何在 NativeScript 中设置字体的博客文章

但是为了简单回答您的具体问题,该字体实际上并未命名为“Ubuntu”;那是文件名。如果您查看字体图片的顶部中间,您会看到名称实际上是“ Ubuntu Gras ”。
Ubuntu Gras

所以你的 CSS 实际上应该是这样的。

.Ubuntu
{
    font-family:Ubuntu,Ubuntu Gras;
}
Run Code Online (Sandbox Code Playgroud)

这会导致 iOS 和 Android 在系统加载的字体中找不到已加载的名为“Ubuntu”的字体时自动加载“Ubuntu.ttf”文件。(注意:物理文件名应该始终是第一个定义。)

所以在它加载之后,它会尝试使用“Ubuntu”作为字体查找;但这在某些字体的 iOS 上可能会失败(但始终适用于 Android)。然后因为它找不到“Ubuntu”名称,它使用了我们方便地为其提供的下一个可用字体名称——“Ubuntu Gras”。由于字体已经加载(即来自“Ubuntu”名称),因此 iOS 操作系统现在可以找到“Ubuntu Gras”名称,因此它可以正确使用它。