我在这里搜索了答案,但没有找到可用于获取答案的帖子。我只找到有关将字体预安装到应用程序的plist的答案,但对我不起作用。
我想做的是从URL下载字体,将文件本地存储到应用程序中,然后在控件中安装或使用该字体。
我正在将字体安装到平板电脑上以供使用。我可以使用下面的代码将它添加到CTFontManager中,而不会出现任何问题。
private func InstallFont(dest:String) { let fontData = NSData(contentsOfFile: dest)! let dataProvider = CGDataProviderCreateWithCFData(fontData) let cgFont = CGFontCreateWithDataProvider(dataProvider)! var error: Unmanaged? if !CTFontManagerRegisterGraphicsFont(cgFont, &error) { print("Error loading Font!") } }
我面临的问题是,我似乎找不到在应用程序中任何位置安装的字体,我尝试按如下所示进行设置,但默认设置为默认,告诉我找不到字体。
self.font = UIFont(name: "Font Name", size: 20.0)
我还遍历了字体家族,以查看它是否已安装并且在那也没有成功。
for x in UIFont.familyNames() { print(x) for z in UIFont.fontNamesForFamilyName(x) { print("== \(z)") } }
我正在努力实现的目标是否可能?如果是这样,我在做什么错?
有可能的。我在github中创建了一个示例项目。您只需添加下面的行。
if !CTFontManagerRegisterGraphicsFont(cgFont, &error) { print("Error loading Font!") } else { let fontName = CGFontCopyPostScriptName(cgFont) uiFont = UIFont(name: String(fontName) , size: 30) }
谢谢迈克尔·道特曼,他是对的。
Github项目链接