UIFont屬性探究

UIFont最常用的屬性就是fontNamefontSize
下面的幾個屬性不常用但是跟文字的繪制有關

// Font attributes
@property(nonatomic,readonly,strong) NSString *familyName;//字體家族的名字
@property(nonatomic,readonly,strong) NSString *fontName;//字體的名字
@property(nonatomic,readonly)        CGFloat   pointSize;//字體大小
@property(nonatomic,readonly)        CGFloat   ascender;//基準線以上的高度
@property(nonatomic,readonly)        CGFloat   descender;//基準線以下的高度
@property(nonatomic,readonly)        CGFloat   capHeight;//大小的高度
@property(nonatomic,readonly)        CGFloat   xHeight;//小寫x的高度
@property(nonatomic,readonly)        CGFloat   lineHeight NS_AVAILABLE_IOS(4_0);//當前字體下的行高
@property(nonatomic,readonly)        CGFloat   leading;行間距(一般為0)

結合圖片來看,屬性的作用會更加容易理解

所以得以得到以下結論

  1. pointSize = fontSize 即字體大小
  2. lineHeight = ascender + descender
  3. 設置富文本行高為0的時候,依然可以看到行與行之間存在間隙,間隙的高度為lineHeight - pointSize,
  4. 設置富文本的時候,如果文本只有一段,那么計算出來的文本所需高度是lineHeight + lineSpacing;如果有N(N>1)行,那么計算出來的文本所需高度為 lineHeight * N + lineSpacing * (N - 1)

參考

Understanding fonts and UIFont
在iOS中如何正確的實現行間距與行高

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。