我尝试使用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
。
欢迎任何帮助!
答案 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 。文件名在哪里,
在android中,我使用了 BebasNeue Regular.ttf#BebasNeue Regular ,它按预期工作。但是,在iOS中,字体名称如下,
,而不是任何模式。因此,在寻找字体系列 Bebas Neue (带空格)之后,我找到了正确的名称,并且能够在iOS上使用该字体。
希望这有帮助。