Я работаю над приложением, в котором пользователь может устанавливать различные пользовательские шрифты.Приложение представляет пользователю список шрифтов, которые он может установить.(3 случайных шрифта предоставлены для этого примера)
Шрифты загружаются, когда пользователь открывает приложение, и шрифты динамически загружаются с помощью этой функции.,Пользовательские шрифты не добавляются в список info.plist.
func install_font(font_path : String) -> Bool
{
let font_data = try! Data(contentsOf: URL(fileURLWithPath: font_path))
if let provider = CGDataProvider.init(data: font_data as CFData)
{
var error: Unmanaged<CFError>?
let font:CGFont = CGFont(provider)!
if (!CTFontManagerRegisterGraphicsFont(font, &error))
{
print(error.debugDescription)
return false
}
else
{
return true
}
}
return false
}
До сих пор я использовал эту функцию, но при этом отображаются все шрифты: установленные и динамически загруженные.
func show_all_fonts()
{
UIFont.familyNames.forEach({ familyName in
let fontNames = UIFont.fontNames(forFamilyName: familyName)
print(familyName, fontNames)
})
}
Есть ли способ отобразить только установленные шрифты?Мне нужен метод, чтобы отличить установленные шрифты от динамически загружаемых шрифтов, чтобы я мог поставить галочку в ячейке таблицы для установленных.