我已经看过这个问题并且多次回答,但我没有看到真正的答案.常见的"解决方案"是:
所以问题是:如何在iOS下动态加载字体? "动态"加载字体意味着加载在应用程序编译时未知的任何给定字体.
我在这里搜索了答案,但没有找到可用于获取答案的帖子。我只找到有关将字体预安装到应用程序的plist的答案,但对我不起作用。
我想做的是从URL下载字体,将文件本地存储到应用程序中,然后在控件中安装或使用该字体。
我正在将字体安装到平板电脑上以供使用。我可以使用下面的代码将它添加到CTFontManager中,而不会出现任何问题。
private func InstallFont(dest:String)
{
let fontData = NSData(contentsOfFile: dest)!
let dataProvider = CGDataProviderCreateWithCFData(fontData)
let cgFont = CGFontCreateWithDataProvider(dataProvider)!
var error: Unmanaged<CFError>?
if !CTFontManagerRegisterGraphicsFont(cgFont, &error)
{
print("Error loading Font!")
}
}
Run Code Online (Sandbox Code Playgroud)
我面临的问题是,我似乎找不到在应用程序中任何位置安装的字体,我尝试按如下所示进行设置,但默认设置为默认,告诉我找不到字体。
self.font = UIFont(name: "Font Name", size: 20.0)
Run Code Online (Sandbox Code Playgroud)
我还遍历了字体家族,以查看它是否已安装并且在那也没有成功。
for x in UIFont.familyNames()
{
print(x)
for z in UIFont.fontNamesForFamilyName(x)
{
print("== \(z)")
}
}
Run Code Online (Sandbox Code Playgroud)
我正在努力实现的目标是否可能?如果是这样,我在做什么错?
在我的应用程序中,我想让用户下载并使用字体,但我不知道如何动态地执行此操作。我知道我们必须指定要在应用程序文件中使用的字体Info.plist,但我们无法以编程方式向该 plist 文件添加任何内容。有 zynga 的库,但它是UILabel.
请帮忙
需要通过CGFont以下功能
CGFontCreateCopyWithVariations(<#font: CGFont!#>, <#variations: CFDictionary!#>))
Run Code Online (Sandbox Code Playgroud)