一个APP展现在用户的面前,最直观的视觉元素就是文字,图片以及文字所采用的字体和文字颜色。从iOS开发的角度来说,无论UIKit的哪一个控件,都少不了要和这几个元素打交道。在UIKit框架中,封装了这3个基本的类供我们直接调用,分别是UIFont
,UIColor
,UIImage
下面我们分析这几个基本类的用法
1. UIFont
UIFont类用来管理APP展现在用户眼前的所有跟文字有关的字体和字号大小,当然你也可以使用自定义的字体。该类的继承结构:UIFont-->NSObject
-
属性
@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;
@property(nonatomic,readonly) CGFloat lineHeight NS_AVAILABLE_IOS(4_0);
@property(nonatomic,readonly) CGFloat leading;
familyName代表的意思是字体的名字,英文也就是TypeFace,如宋体,黑体,fontName则代表字体里面的具体的名字,如宋体粗体,宋体斜体等等。具体的指定一种字体应该是包括fontName和字号大小.
pointSize就代表字号的大小,ascender代表基于字体的基线最大的上升高度,因为有些文字会比较复杂,如上下结构的中文,descender代表基于基线的最大下降的高度,如中文的折弯钩
和英文的gqy
之类的会有最低高度限制,这三个属性基本上就规定了文字在界面上的绘制区域。
英文字体是基于字母x来作为最基本的框架来设计,xHeight就代表小写字母x的高度,capHeight则代表大写字母的高度。
leading代表从规定字号的字体上基线到下基线之间的距离,也就是一行的高度,用lineHeight属性来代替。
这些属性都是只读模式的,实际开发中基本上用不到,我们更多地是使用类方法。
-
类方法
+ (UIFont *)systemFontOfSize:(CGFloat)fontSize;
+ (UIFont *)boldSystemFontOfSize:(CGFloat)fontSize;
+ (UIFont *)italicSystemFontOfSize:(CGFloat)fontSize;