2017-02-12 12 views
0

UIFontの文字数の合計を照会する方法はありますか?例えば、次のようなものです:UIFont.systemFont(ofSize:16).count?私は、UIFontのすべての文字をブラウズするためのアプリを構築しています。私は、そのフォントで定義されているグリフの総数を知りたい、それがサポートする最大のUnicodeコードを知りたい。UIFontの合計文字数

+0

フォントがサポートするUnicodeと非Unicode文字の数を言うことを意味しますか? – KrishnaCA

+0

@KrishnaCAはい。 – andrewz

+0

これは 'CTFont'を使って行うことができます。詳細は私の答えをチェックしてください。 – KrishnaCA

答えて

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 
} 
+0

あなたはそれを迅速に変換できますか? – andrewz

+0

@andrewz、すぐにコードを書き直しました。 – KrishnaCA

+0

Super、ありがとうございます – andrewz

関連する問題