iOS开发 Fonts

来源:互联网 发布:淘宝618大促 编辑:程序博客网 时间:2024/06/08 07:56

Fonts

字体的正确设置在iOS的开发中非常的重要。

UIFont

设置字体最好的方法就是在文本样式中选择指定的字体。如:
UIFont *font = [UIFont preferredFontForTextStyle:UIFontTextStyleBody];
其他样式还有:UIFontTextStyleHeadline,UIFontTextStyleCaption1,UIFontTextStyleFootnote等等。
也有系统的字体样式。这些样式可以使用在比方说按钮的标题中。方法如下:
+ (UIFont *)systemFontSize:(CGFloat)pointSize;+(UIFont *)boldSystemFontOfSize:(CGFloat)pointSize;
任何时候都不要在用户的内容区使用系统字体。

UIFontDescriptor

字体是艺术家设计的。每种字体并不是都拥有共同的属性。比如有些字体就没有粗体这一类型。UIFontDescriptor使用属性字典来描述字体的样式。你可以使用如下UIFont的实例方法得到一个font descriptor。
- (UIFontDescriptor *)fontDescriptor;
然后你可以通过UIFontDescriptor来调节字体的样式和字体的大小。
- (UIFontDescriptor *)fontDescriptorByAddingAttributes:(NSDictionary *)attributes;
属性和对应的值可以在UIFontDescriptor类找到。
也可以通过类方法直接创建一个带属性的UIFontDescriptor:
+ (UIFontDescriptor *)fontDescriptorWithFontAttributes:(NSDictionary *)attributes;

Symolic Traits

可以通过UIFontDescriptor来获得字体的样式特征。比如说,斜体、粗体和缩进。方法如下:
- (UIFontDescriptorSymbolicTraits)symbolicTraits;- (UIFontDescriptor *)fontDescriptorWithSymbolicTraits:(UIFontDescriptorSymbolicTraits)traits;
字体的特征有:UIFontDescriptorTraitItalic,UIFontDescriptorTraitBold,UIFontDescriptorTraitCondensed,等等。
一旦你获得了UIFontDescriptor,你就可以通过UIFont的如下类方法来设置字体的样式了:

+ (UIFont *)fontWithDescriptor:(UIFontDescriptor *)descriptor size:(CGFloat)size;

如果size的值为零。表示任意大小。会自动匹配一个合适的大小。

示例:要获得一个粗体字体,可以实现如下:

UIFont *bodyFont = [UIFont preferredFontForTextStyle:UIFontTextStyleBody];UIFontDescriptor *existingDescriptor = [bodyFont fontDescriptor];UIFontDescriptorSymbolicTraits traits = existingDescriptor.symbolicTraits;traits |= UIFontDescriptorTraitBold;UIFontDescriptor *newDescriptor = [existingDescriptor fontDescriptorWithSymbolicTraits:traits];UIFont *boldBodyFont = [UIFont fontWithFontDescriptor:newDescriptor size:0];

0 0