如何解决为什么我的自定义字体在 Xamarin.iOS 中不起作用?
男孩,我被困住了。我想我已经在线查看了每个指南,但无法使其正常工作。以下是我已完成的步骤:
- 我已将此自定义字体目录添加到我的 Xamarin.iOS 项目中 在资源/字体下。
- 我已将他们的构建操作全部设置为
捆绑资源。 - 我已为他们设置始终复制到构建中
目录。 - 我已将他们的名字添加到 Info.Plist 中,如下所示:
<key>UIAppFonts</key>
<array>
<string>BentonSans-Regular.otf</string>
<string>BentonSans-Black.otf</string>
<string>BentonSans-Bold.otf</string>
<string>BentonSans-Book.otf</string>
<string>BentonSans-CompMediumRegular.otf</string>
<string>BentonSans-Medium.otf</string>
</array>
-
我尝试像这样设置字体:
button.Font = UIFont.FromName("BentonSansComp-Medium",16);
请注意这样做,我的应用程序运行,但字体似乎没有任何效果。我曾尝试将 Fonts/
放在 info.plist 中的字体前面,但这会导致代码中引用字体为空的异常。
我真的无法弄清楚我在这里遗漏了什么。字体似乎不适用。我使用 SushiHangover 的 code 来确保我的字体已注册:
2021-05-11 16:03:01.168473+0100 MyProject[54240:1851117] * BentonSans Black
2021-05-11 16:03:01.169049+0100 MyProject[54240:1851117] *-- BentonSans-Black
2021-05-11 16:03:01.169423+0100 MyProject[54240:1851117] * BentonSans Bold
2021-05-11 16:03:01.169862+0100 MyProject[54240:1851117] *-- BentonSans-Bold
2021-05-11 16:03:01.170201+0100 MyProject[54240:1851117] * BentonSans Book
2021-05-11 16:03:01.170743+0100 MyProject[54240:1851117] *-- BentonSans-Book
2021-05-11 16:03:01.171092+0100 MyProject[54240:1851117] * BentonSans Comp Medium
2021-05-11 16:03:01.171826+0100 MyProject[54240:1851117] *-- BentonSansComp-Medium
2021-05-11 16:03:01.172315+0100 MyProject[54240:1851117] * BentonSans Medium
2021-05-11 16:03:01.173718+0100 MyProject[54240:1851117] *-- BentonSans-Medium
2021-05-11 16:03:01.174237+0100 MyProject[54240:1851117] * BentonSans Regular
2021-05-11 16:03:01.175211+0100 MyProject[54240:1851117] *-- BentonSans-Regular
这表明我弄错了 BentonSansComp-Medium 的名称,它确实修复了之前的运行时错误。但它并没有使字体适用。
解决方法
您使用字符串“BentonSansComp-Medium”作为方法“UIFont.FromName”的参数,但它不存在于您的 plist 中。
我刚刚关注了博客 Using custom Fonts in Xamarin.iOS,并使用 .ttf 和 .otf 进行了测试。一切正常。
解决方案资源管理器中的文件夹:
这是我的 info.plist。 (构建操作:BundleResource,复制到输出目录:始终复制)
<key>UIAppFonts</key>
<array>
<string>Fonts/MyFonts/Winter.otf</string>
<string>Fonts/MyFonts/Goodest.ttf</string>
</array>
测试代码:
var lab1 = new UILabel(new RectangleF(0,100,300,40));
lab1.Text = "This is some sample text";
lab1.Font = UIFont.FromName("Winter",20f);
this.Add(lab1);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。