Roboto Font在Xamarin iOS中不可用

时间:2016-06-23 05:13:04

标签: ios xamarin.ios

我尝试使用this guide在Xamarin iOS中使用自定义字体。我将字体添加到Resources / Fonts文件夹中。然后将其添加到数组属性<!DOCTYPE HTML> <html> <head> <title>My app</title> <script charset="utf-8" type="text/javascript" src="cordova-2.1.0.js"></script> <script type="text/javascript"> // Wait for Cordova to load // document.addEventListener("deviceready", onDeviceReady, false); // Cordova is ready // function onDeviceReady() { // Empty } function listener(event) { if (event.origin !== "http://apex.oracle.com") return; if (event.data == "vibrate") { navigator.notification.vibrate(2000); } } if (window.addEventListener) { addEventListener("message", listener, false); } else { attachEvent("onmessage", listener); } </script> <style type='text/css'> body,html,iframe { margin: 0; padding: 0; border: none; width: 100%; height: 100%; } </style> </head> <body> <iframe src='http://apex.oracle.com/pls/apex/f?p=41097:2' id='iframe'></iframe> </body> </html>下的info.plist中。我将字体的属性更改为Bundle Resource和Copy Always。

现在,必须在xamarin设计器中显示新添加的字体。但是,它没有显示Fonts provided by application。但它适用于Roboto-Regular.ttf

欢迎任何帮助!

1 个答案:

答案 0 :(得分:0)

iOS可以使用不同的字体名称注册字体。如果您的字体已成功注册(正如您的步骤所示),您可以在 UIFonts.FontFamilyNames 数组中找到它,然后使用它。要查找所有已注册的字体,

foreach (var fontFamily in UIFont.FamilyNames)
{
    foreach (var font in UIFont.FontNamesForFamilyName(font))
    {
        System.Diagnostics.Debug.Console.WriteLine(item);
    }
    System.Diagnostics.Debug.Console.WriteLine("---");
}

如果你还没有看到你的字体。尝试按名称明确找到它,

foreach (var font in UIFont.FontNamesForFamilyName(friendlyFontName)) // can have space in font name.
{
    System.Diagnostics.Debug.Console.WriteLine(item);
}
System.Diagnostics.Debug.Console.WriteLine("---");

如果您在那里找到了字体,那么您需要在代码中使用字体名称。

实施例,

我最近使用 Bbas Neue 。文件名在哪里,

  • BebasNeue Regular.ttf
  • BebasNeue Bold.ttf
  • BebasNeue Thin.ttf

在android中,我使用了 BebasNeue Regular.ttf#BebasNeue Regular ,它按预期工作。但是,在iOS中,字体名称如下,

  • BebasNeueRegular
  • BebasNeueBold
  • BebasNeue薄
你可以看到

,而不是任何模式。因此,在寻找字体系列 Bebas Neue (带空格)之后,我找到了正确的名称,并且能够在iOS上使用该字体。

希望这有帮助。