【问题标题】:Custom fonts don't load in Xamarin iOS自定义字体不会在 Xamarin iOS 中加载
【发布时间】:2017-06-19 13:17:35
【问题描述】:

自定义字体不会在 Xamarin iOS 中加载。正如 2013 年的 Xamarin 文档 (https://blog.xamarin.com/custom-fonts-in-ios/) 中所述,我做了以下事情:

1) 将字体导入资源
2) 将构建操作设置为“BundleResource”(Xamarin 文档中的错误)
3) 复制到输出目录:“始终复制”
4) 将字体名称添加到 Info.plist 中的“应用程序提供的字体”数组中(使字体在情节提要中可用,但在运行时不可用)

在 App Delegate 的 FinishedLaunching() 中,我遍历所有已安装的字体:

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

    foreach (var names in UIFont.FontNamesForFamilyName(family))
    {
        System.Diagnostics.Debug.WriteLine($"{names}");
    }
}
var fontName = UIFont.FromName("Karbon", 20.0f); // fontName is null

没有自定义字体显示,这是什么问题?


Visual Studio Community 2017 for Mac(预览版) 版本 7.1 预览版(7.1 build 1178) 运行时:Mono 5.2.0.179 (2017-04/4498dc4)(64 位)

Xamarin.iOS 版本:10.12.0.5(Visual Studio 社区)

【问题讨论】:

  • 你编辑过你的plist吗?
  • 我还在 Info.plist 中添加了数组“应用程序提供的字体”并添加了字体,这使得字体在情节提要中可用。但是,在运行时,不会加载字体。

标签: xamarin xamarin.ios custom-font


【解决方案1】:

对于来到这里使用 Windows 10 和 Visual Studio 的任何人

  • xxx.ttf放到资源文件夹中
  • 右击xxx.ttf>属性>构建动作:BundleResource
  • 不要做 => 复制到输出目录:总是复制
  • Xamarin.iOS > 右键单击​​ info.plist > 打开方式 > Xml(文本)编辑器
  • 添加以下内容:
<dict>

    ... ... ...

    <key>UIAppFonts</key>
    <array>
        <string>xxx.ttf</string>
    </array>

    ... ... ...

</dict>
  • 在 xaml 中使用字体名称而不是 xxx.ttf 文件名(双击 xxx.ttf 以查看字体名称)
<Label.FontFamily>
    <OnPlatform x:TypeArguments="x:String">
        <On Platform="iOS" Value="Typeface_name" />
        <On Platform="Android" Value="filename_name.ttf#Typeface_name" />
        <On Platform="UWP" Value="Assets/Fonts/filename_name.ttf#Typeface_name" />
    </OnPlatform>
</Label.FontFamily>

【讨论】:

  • 谢谢 - 尽管在 UIAppFonts 键后仅使用一个裸字符串阅读了几个关于此的参考资料,但直到我将单个值放入数组中,我才开始使用它。
【解决方案2】:

更新:Info.plist 必须更新(包括字体类型,例如 ttf)并且字体的属性应该设置为不复制到输出目录(不复制)。在这些更改之后它可以工作。

【讨论】:

    猜你喜欢
    • 2020-12-10
    • 2019-03-13
    • 1970-01-01
    • 1970-01-01
    • 2014-12-31
    • 1970-01-01
    • 2016-05-30
    • 2022-01-09
    • 2012-05-05
    相关资源
    最近更新 更多