UIFont

时间:2017-02-12 13:29:50

标签: ios uifont

有没有办法查询UIFont中的字符总数?例如,像这样:UIFont.systemFont(ofSize:16).count?我正在构建一个应用程序来浏览UIFont中的所有字符。我想知道为该字体定义的字形总数,最好是它支持的最大unicode代码。

1 个答案:

答案 0 :(得分: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
}