uifont是ios開發中處理文本字型的類,關于uifont的相關内容,以前的一篇部落格有詳細介紹,本片部落客要介紹關于動态字型的應用與字型描述類nsfontdescriptor的應用。
所謂動态字型,是指在應用使用中,使用者可以動态調整字型的風格字号等。在ios7及之後的ios系統版本,textkit架構中提供了一個新的類uifontdescriptor。簡單了解,uifontdescriptor類是專門用來描述字型的,其中提供了許多方法可以直接建立出某種字型,也可以對字型進行設定和調整。動态字型也由這個類來建立。
在ios7之後,系統增加了動态字型的功能,當使用者在系統設定中修改字型的屬性或者字号時,不僅會影響系統應用的字型,第三方應用的字型也可以進行相應調整。系統設定字型界面如下:

使用uifontdescriptor類中的如下方法可以建立動态字型:
uifont類中的如下方法可以将字型描述類轉換成uifont字型:
系統定義了一組動态字型的風格字元創常量,開發者可以根據需求選用:
uifontdescriptor類可以直接通過字型名稱來進行建立:
cgaffinetransform是一個結構體,其用于文本的控件變換十分強大,在coreanimation架構中有catransform3d這個結構體,cgaffinetransform與其用法十分相似,使其它可以完成文字的形變,旋轉等。示例如下:
效果如下:
開發者也可以通過配置地點的方式來建立uifontdescriptor對象:
字典中可以配置的鍵值如下:
關于字型的特征藐視,即上面uifontdescriptortraitsattribute鍵值所配置的字典,這個字典中可以設定的鍵值如下:
關于上面uifontsymbolictrait鍵值,定義在uifontdescriptorsymbolictraits枚舉中,如下: