继承:NSObject
符合:NSCopying
Framework:UIKit 在iOS 2.0 和之后。
UIFont类提供了获取和设置字体的接口信息。在用于布局时,UIFont类提供了访问字体的特征也为系统提供了访问字体的字形信息。你使用字体对象通过接受它们作为参数的方法。
你可以不使用创建UIFont对象分配(alloc)和初始化(init)方法。相反,你可以使用UIFont类方法,如preferredFontForTextStyle:查找和检索所需要的字体的对象。如果它存在,这些方法检查现有的字体对象指定的特殊特征并返回它。否则,他们基于所需要的字体特征创建一个新的字体对象。
由于字体对象是不可变的,所以在你的应用程序是安全的使用多线程。
创建字体
/* 返回字体与指定的文本样式。 可用于iOS7.0和之后
* style|他返回一个字体的文本样式。可以看“文本样式”UIFontDescriptor Class Reference公认值。
*/
+ (UIFont *)preferredFontForTextStyle:(NSString *)style;
/* 返回指定的名称和大小的字体对象。 可用于iOS2.0和之后
* fontName|这个名字包含字体名称和字体的具体样式信息。
* fontSize|字体的大小(点)是按比例缩小的。这个值必须大于0.0。
*/
+ (UIFont *)fontWithName:(NSString *)fontName
size:(CGFloat)fontSize;
/* 返回指定大小的字体对象。 可用于iOS2.0和之后
* fontSize|字体的大小(点)是按比例缩小的。这个值必须大于0.0。
*/
- (UIFont *)fontWithSize:(CGFloat)fontSize;
创建系统字体
仔细想想在使用这些方法。在大多数情况下,返回的字体+ preferredFontForTextStyle:会更合适,会尊重用户的选择内容大小类别。
/* 返回指定大小的字体对象。 可用于iOS2.0和之后
* fontSize|字体的大小(点)是按比例缩小的。这个值必须大于0.0。
*/
+ (UIFont *)systemFontOfSize:(CGFloat)fontSize;
/* 返回字体的对象指定的大小和权重。可用于iOS8.2和之后
* fontSize|字体的大小(点)是按比例缩小的。这个值必须大于0.0。
* weight|指定的字体,字体权重不变。可能值的列表,请参阅“字体大小”UIFontDescriptor类参考。避免将一个任意的浮点数权重,因为字体可能不包括每一个变体的权重。
*/
+ (UIFont *)systemFontOfSize:(CGFloat)fontSize
weight:(CGFloat)weight;
/* 返回指定大小的字体对象。 可用于iOS2.0和之后
* fontSize|字体的大小(点)是按比例缩小的。这个值必须大于0.0。
*/
+ (UIFont *)boldSystemFontOfSize:(CGFloat)fontSize;
/* 返回指定大小的字体对象。 可用于iOS2.0和之后
* fontSize|字体的大小(点)是按比例缩小的。这个值必须大于0.0。
*/
+ (UIFont *)italicSystemFontOfSize:(CGFloat)fontSize;
/* 返回字体的对象指定的大小和权重。可用于iOS9.0和之后
* fontSize|字体的大小(点)是按比例缩小的。这个值必须大于0.0。
* weight|指定的字体,字体权重不变。可能值的列表,请参阅“字体大小”UIFontDescriptor类参考。避免将一个任意的浮点数权重,因为字体可能不包括每一个变体的权重。
*/
+ (UIFont *)monospacedDigitSystemFontOfSize:(CGFloat)fontSize
weight:(CGFloat)weight;
获得可用的字体名称
//返回一个数组系统上可用的字体名称。 可用于iOS2.0和之后
+ (NSArray<NSString *> *)familyNames;
/* 返回一个数组特定字体上可用的字体名称。 可用于iOS2.0和之后
* familyName|字体的名称。使用familyNames方法得到一组系统上可用的字体名称。
*/
+ (NSArray<NSString *> *)fontNamesForFamilyName:(NSString *)familyName;
获取字体名称属性
//字体名称。(只读) 可用于iOS2.0和之后
@property(nonatomic, readonly, strong) NSString *familyName;
//字体外观名称 。(只读) 可用于iOS2.0和之后
@property(nonatomic, readonly, strong) NSString *fontName;
获取字体度量
//可用于iOS2.0和之后
@property(nonatomic, readonly) CGFloat pointSize;
//可用于iOS2.0和之后
@property(nonatomic, readonly) CGFloat ascender;
//可用于iOS2.0和之后
@property(nonatomic, readonly) CGFloat descender;
//可用于iOS2.0和之后
@property(nonatomic, readonly) CGFloat leading;
//可用于iOS2.0和之后
@property(nonatomic, readonly) CGFloat capHeight;
//可用于iOS2.0和之后
@property(nonatomic, readonly) CGFloat xHeight;
//可用于iOS4.0和之后
@property(nonatomic, readonly) CGFloat lineHeight;
获取系统字体信息
//返回用于标签的标准字体大小。 可用于iOS2.0和之后
+ (CGFloat)labelFontSize;
//返回按钮使用的标准字体大小。 可用于iOS2.0和之后
+ (CGFloat)buttonFontSize;
//返回标准小系统字体的大小。 可用于iOS2.0和之后
+ (CGFloat)smallSystemFontSize;
//返回标准的系统字体的大小。 可用于iOS2.0和之后
+ (CGFloat)systemFontSize;
获取字体描述
//返回一个字体描述符描述字体。 可用于iOS7.0和之后
- (UIFontDescriptor *)fontDescriptor;
/* 返回一个字体匹配给定的字体描述符。可用于iOS7.0和之后
* descriptor|字体描述符匹配。
* size|点的字体的大小比例。如果大于0.0,它优先于UIFontDescriptorSizeAttribute在描述符。
*/
+ (UIFont *)fontWithDescriptor:(UIFontDescriptor *)descriptor
size:(CGFloat)pointSize;