要在 iOS 中使用字体,您必须根据字体的FULL NAME(PostScript 名称)加载字体,有时(并且通常)与字体的实际FILE NAME不同。
想象一下自己将字体文件“Arial-regular.ttf”重命名为“foo.ttf”。您刚刚重命名的字体文件中包含的字体仍然是“Arial-regular”。
有一些很好的编程方法可以在这个线程上获取字体名称,但我使用命令行有不同的方法。
如果您使用的是 Mac 或 Linux,只需从您拥有自定义字体的目录中的命令行运行此脚本(使用可能已经安装的fontconfigfc-scan
中的实用程序,但如果没有,您可以通过 homebrew 安装它:) :brew install fontconfig
for file in "$arg"*.{ttf,otf}; do fc-scan --format "%{postscriptname}\n" $file; done
~/Library/Fonts
这是在我的目录上运行的上述命令的屏幕截图:
上面的脚本将运行当前目录中的所有.ttf
和.otf
文件,然后打印出每种字体的PostScript 名称,您可以使用它来引用 XCode 或其他地方的字体文件。
如果你想了解一些附加信息(PostScriptName、Filename)和一些颜色编码,你可以运行这个替代脚本:
for file in "$arg"*.{ttf,otf}; do
postscriptname=$(fc-scan --format "%{postscriptname}\n" $file);
printf "\033[36m PostScript Name:\033[0m %s \e[90m(%s)\033[0m\n" "$postscriptname" "$file";
done
这比在 AppDelegate.m 文件中复制粘贴代码以在每次要添加新字体文件时打印出名称要快一点,这是一种流行的方法,而且它也比在 FontBook 中打开字体更快检查 PostScript 名称。
有用的提示:如果您在终端中为上述脚本设置别名,那么您需要做的就是键入一个命令来获取当前目录中所有文件的所有 PostScript 字体名称(我的函数被调用fontnames
,所以我要做的就是是fontnames
在包含字体的目录内的终端上键入,PostScript 名称将自动打印,然后您将节省开发工作流程的时间,并在需要时准备好使用这个方便的脚本。
希望这可以帮助!