UIFont的lineHeight与pointSize

来源:互联网 发布:spring源码 策略模式 编辑:程序博客网 时间:2024/06/03 06:33

转载自:   http://blog.csdn.net/a2331046/article/details/52904529

写这篇文章的初衷是由于我有一次想获取一个font的字体大小时使用了UIFont的lineHeight属性,结果是比字体的大小要大了一部分,然后经过查阅各种资料,发现了原因。

首先我们来看一看UIFont的API里面有哪些属性:

[objc] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. // Font attributes  
  2. @property(nonatomic,readonly,strongNSString *familyName;  
  3. @property(nonatomic,readonly,strongNSString *fontName;  
  4. @property(nonatomic,readonly)        CGFloat   pointSize;  
  5. @property(nonatomic,readonly)        CGFloat   ascender;  
  6. @property(nonatomic,readonly)        CGFloat   descender;  
  7. @property(nonatomic,readonly)        CGFloat   capHeight;  
  8. @property(nonatomic,readonly)        CGFloat   xHeight;  
  9. @property(nonatomic,readonly)        CGFloat   lineHeight NS_AVAILABLE_IOS(4_0);  
  10. @property(nonatomic,readonly)        CGFloat   leading;  

你会发现有这么一大堆属性然而并不知道都是干嘛的,不用着急,给你们看一张图就知道了:


现在应该大致知道各个属性都是干嘛了的吧。

pointSize就是字体的大小,要获取字体大小就用这个属性。

而lineHeight是行高,当你要计算这些字所占用的高度的时候,要用这个属性。

有一个属性baseLine,指的就是紧贴着这些字符的那条线。

leading指的是如果有多行的话,两个baseline之间的距离,如果只有一行,那么这个值就是0.

ascender和descender意义很明确,就不说了。

capHeight表示最高的字符的高度。

xHeight表示最低的字符的高度。

fontName表示的字体的名字,familyName会把字体名字分成几部分,用空格隔开。应该是字体也分家族吧。


我觉得说的很清楚了,到这了。



0 0
原创粉丝点击