Есть ли способ запросить общее количество символов в UIFont? Например, что-то вроде этого: UIFont.systemFont (ofSize: 16) .count? Я создаю приложение для просмотра всех символов в UIFont. Я хотел бы узнать общее количество глифов, определенных для этого шрифта, желательно, чтобы он поддерживал максимальный код юникода.Общее количество символов в UIFont
0
A
ответ
2
Я считаю, что вы можете достичь, следующим образом, используя CoreText
:
import CoreText
extension CharacterSet {
func charCount() -> Int {
var count = 0
for plane:UInt8 in 0...16 where self.hasMember(inPlane: plane) {
for unicode in UInt32(plane) << 16 ..< UInt32(plane+1) << 16 {
if let uniChar = UnicodeScalar(unicode) {
if self.contains(uniChar) {
count += 1
}
}
}
}
return count
}
}
func getCountForFont(font: UIFont) -> Int {
let coreFont: CTFont = font
let characterSet: CharacterSet = CTFontCopyCharacterSet(coreFont) as CharacterSet
let count = characterSet.charCount()
return count
}
ли Вы хотите сказать, число Юникод и не-Unicode символы, которые поддерживает шрифт? – KrishnaCA
@ KrishnaCA Да. – andrewz
Это можно сделать с помощью 'CTFont'. Пожалуйста, проверьте мой ответ. – KrishnaCA