我在我的Codename One应用程序中使用不同的字体。如果我包含并使用来自Google fonts的Roboto-Bold.ttf或Oswald字体或来自dafont.com的Keep Calm Medium,则会在Android和Codename One Simulator上显示文本(在this SO question上报告)但不在iOS(既不在设备上也不在XCode设备上)虽然字体打包在由Codename One生成的.ipa中。
我尝试使用style = PLAIN或BOLD来获得相同的结果。
我使用了font = Font.createTrueTypeFont(fontName, fontFilename ).derive(fontSize, style);
为什么某些字体在工作而其他字体不工作?在编译之前有什么办法可以知道哪些字体更有可能在iOS上运行?
答案 0 :(得分:2)
iOS和Android使用非常处理字体的不同方法,我们尝试使用简单的方法进行简化。
如果您使用UIID在设计器中定义字体,我们可以为您隐藏大部分复杂性,但是当您动态加载字体时,您会接触到其中的一些。
Android只是加载字体文件,因此使用该文件,这应该像模拟器一样轻松工作。 iOS需要安装字体然后按字体名称加载(这不是文件名,并且不是非常直观)。此堆栈溢出问题讨论了在Mac上获取字体名称的方法:How do I get the font name from an otf or ttf file?