【转】iOS 富文本属性

【转】iOS 富文本属性

前言

iOS 开发中我们常用到富文本属性,如行间距、链接、对齐等。这时我们iOS框架中的NSAttributedString类,他继承于NSObject类。专门用于给iOS中的字体来设计样式。
在这里我只对常用的作介绍,详细的可以点击这里查看这位博主写的,他写的十分详细。

本文使用NSMutableAttributedString实现富文本,主要步骤分为以下三步,为避免下面解释代码时所添加的注释不断重复,特在此说明提前说明一下:

调用 - (instancetype)initWithString:(NSString *)str 方法来创建 NSMutableAttributedString 实例

调用 - (void)addAttribute:(NSString *)name value:(id)value range:(NSRange)range 方法添加所需的 Attribute 属性,要注意range的范围,所添加的属性只对指定范围内的文字有效

给 label 赋值 : label.attributedText = attributedString;

NSParagraphStyleAttributeName —— 文本字、行间距,对齐等

NSString *text = @"我是一个很长很长很长的文本,我的字间距是5,行间距是20,对齐方式为居中对齐。";
NSMutableAttributedString *attributeStr = [[NSMutableAttributedString alloc]initWithString:text];

// 创建NSMutableParagraphStyle实例
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.lineSpacing = 5;       //字间距5
paragraphStyle.paragraphSpacing = 20;       //行间距是20
paragraphStyle.alignment = NSTextAlignmentCenter;   //对齐方式为居中对齐

[attributeStr addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, text.length)];

self.label.attributedText = attributeStr;

6792519-2f4175bb37c128ce-1

NSFontAttributeName —— 字体大小

NSString *text = @"我是30号系统字体,你是15号Courier-BoldOblique字体";
    // 1.创建NSMutableAttributedString实例
    NSMutableAttributedString *fontAttributeNameStr = [[NSMutableAttributedString alloc]initWithString:text];

// 2.添加属性
[fontAttributeNameStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:30] range:NSMakeRange(0, 9)];
[fontAttributeNameStr addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Courier-BoldOblique" size:15] range:NSMakeRange(9, text.length - 9)];

// 3.给label赋值
self.label.attributedText = fontAttributeNameStr;

}

6792519-d5b2c508bb3daf40

-------------本文结束感谢您的阅读-------------