代号一:在 iOS 上使用 Roboto 或 Keep Calm Medium 字体未显示文本

Codename One : Text not showing using Roboto or Keep Calm Medium font on iOS

我在我的 Codename One 应用程序中使用了不同的字体。如果我包含并使用 Google fonts or Keep Calm Medium from dafont.com the text is displayed on Android and Codename One Simulator (as reported on 中的 Roboto-Bold.ttf 或 Oswald 字体,但不在 iOS 上(既不在设备上也不在 XCode 设备上),尽管字体打包在Codename One 生成的.ipa.

我尝试使用 style = PLAIN 或 BOLD,结果相同。

我用了font = Font.createTrueTypeFont(fontName, fontFilename ).derive(fontSize, style);

为什么有些字体有效而其他字体无效?有什么办法可以在编译前知道哪些字体更适合 iOS?

iOS 和 Android 使用非常 不同的方法来处理字体,我们试图用一种简单的方法来简化这些方法。

如果您在设计器中使用 UIID 定义字体,我们可以为您隐藏大部分复杂性,但是当您动态加载字体时,您会暴露其中的一部分。

Android 只是加载字体文件,所以该文件被使用,这应该像模拟器一样容易工作。 iOS 需要安装字体,然后按字体名称加载(这不是文件名,不是很直观)。这个堆栈溢出问题讨论了在 Mac 上获取字体名称的方法:How do I get the font name from an otf or ttf file?