iOS开发 Fonts

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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值