要在iOS中使用字体,您必须基于字体的FULL NAME(PostScript名称)加载字体,FULL NAME(PostScript名称)有时(通常与字体的实际FILE NAME)不同。
想象一下,将字体文件“ Arial-regular.ttf”重命名为“ foo.ttf”。您刚刚重命名的字体文件中包含的字体仍然是“ Arial-regular”。
有一些好的编程方法可以在此线程上获取字体名称,但是我使用命令行的方法却有所不同。
如果您使用的是Mac或Linux,只需在您拥有自定义字体的目录中的命令行中运行此脚本即可(使用大概已经安装的fontconfig中的fc-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中打开Font检查PostScript名称。
有用的提示:如果您在终端中为上述脚本添加别名,那么您只需输入一个命令即可获取当前目录中所有文件的所有PostScript字体名称(调用了我的函数,fontnames
因此我要做的所有事情)fontnames
在目录内的终端上键入带有字体的,PostScript名称将自动打印出来,这样可以节省开发流程的时间,并在需要时可以使用此便捷脚本。
希望这可以帮助!