![](/img/trans.png)
[英]How can I find the relative search path of a Framework added to a Swift iOS project using SPM?
[英]How to load/Read Fonts from iOS framework, which are already added in main project in Swift?
在有人将其标记为重复之前,我已经检查了这篇文章但没有帮助。
我创建了一个框架,并在该框架中创建了一些 UI。 现在我想为该 UI 使用自定义字体,这些自定义字体名称将由用户自己提供。 更清楚地说:我有一个框架,我已在现有项目中导入。 现在我必须通过框架显示一个弹出窗口。
MyFramework.showPopup()
但是在这里,用户将指定该弹出窗口的字体,即
MyFramework.showPopup(regularFont: FontA.otf, boldFont: FontB.otf)
这些字体已经添加到我导入框架的项目中。 我只需要一种从框架内部加载这些字体的方法。 任何帮助,将不胜感激。 谢谢。
您需要注册本地字体(位于框架内的字体)才能被 UIFonts API 识别。 一旦你注册了你的字体,它们就可以在框架之外使用。 确保只调用一次此方法以避免字体重复或可能的崩溃。
extension UIFont {
static func registerFonts(from bundle: Bundle) {
print("Registering local fonts...")
let fontUrls = bundle.urls(forResourcesWithExtension: "ttf", subdirectory: nil)!
fontUrls.forEach { url in
let fontDataProvider = CGDataProvider(url: url as CFURL)!
let font = CGFont(fontDataProvider)!
print(font.fullName)
var error: Unmanaged<CFError>?
guard CTFontManagerRegisterGraphicsFont(font, &error) else {
fatalError("Could not register font from url \(url), error: \(error!.takeUnretainedValue())")
}
}
print("Registering Ended")
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.