也许是因为您在.plist
文件中忘记添加关键字。
在一个新行中添加关键字Fonts provided by application
。 为您添加的每个字体添加项目。
我也遇到了这个问题,我将字体定位到我的目标
并将应用程序提供的字体
放入 plist 中。但是当我尝试检索字体时仍然得到 nil。
可能是因为你使用的字体名称不正确。
例如 (我也遇到的问题)
我在项目中拖入的字体名称是trenolt.otf
但是使用此名称UIFont(name: "trenolt", size: 14)
得到 nil
根据通过开发人员文档向应用程序添加自定义字体的说明,我打印出所有字体系列和名称
for family in UIFont.familyNames.sorted() {
let names = UIFont.fontNames(forFamilyName: family)
print("Family: \(family) Font names: \(names)")
}
然后我在控制台中得到
["TruenoLt", "TruenoRg"]
现在使用打印的名称
UIFont(name: "TruenoLt", size: 14)
获取
<UICTFont: 0x7fbc39a168b0> font-family: "Trueno"; font-weight: normal; font-style: normal; font-size: 14.00pt
希望这个方法能够解决你的问题。
尽管字体在应用程序中正常工作,但在扩展程序中却不行,这会导致崩溃。
UIFont(name: name.rawValue, size: size)
返回了nil
。
字体在应用程序本身的Info.plist
文件中,但不在应用程序扩展的Info.plist
中。因此,我不得不手动向扩展的Info.plist
添加一行,键为Fonts provided by application
,并输入应用程序Info.plist
文件中的所有字体,直到它们匹配。然后它就对我起作用了。