iOS NSMutableAttributedString 富文本

NSMutableAttributedString是iOS自带的富文本类,通过使用该类,可以方便地为设置文本的阴影、删除线、段落格式等属性,也可以实现简单的图文混排功能。

1、NSMutableAttributedString常见的属性:
字体 NSFontAttributeName
阴影 NSShadowAttributeName
段落格式 NSParagraphStyleAttributeName
字体颜色 NSForegroundColorAttributeName
背景颜色 NSBackgroundColorAttributeName
删除线格式 NSStrikethroughStyleAttributeName
下划线格式 NSUnderlineStyleAttributeName
删除线颜色 NSStrokeColorAttributeName
删除线宽度 NSStrokeWidthAttributeName

2、根据属性字典创建富文本字符串,代码如下:

NSDictionary *dict = @{
                       NSFontAttributeName  :[UIFont systemFontOfSize:15.0],
                       NSForegroundColorAttributeName   :[UIColor redColor],
                       NSBackgroundColorAttributeName :[UIColor greenColor]
                       };
NSString *str = @"This is a mutable attributed string ...";
NSMutableAttributedString *attrStr = [[NSMutableAttributedString alloc] initWithString:str attributes:dict];

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 50, 200, 40)];
label.attributedText = attrStr;
[self.view addSubview:label];

3、编辑某一范围内富文本文字的属性常见方法及应用
附查询 字符串A在字符串B中的range

    NSString *strA = @"会当凌绝顶,一览众山小。";
    NSString *StrB = @"众山";
    NSRange range = [strA rangeOfString:StrB];

a. 为某一范围内文字设置多个属性
- (void)setAttributes:(NSDictionary *)attrs range:(NSRange)range;

b. 为某一范围内文字添加某个属性
- (void)addAttribute:(NSString *)name value:(id)value range:(NSRange)range;

c. 为某一范围内文字添加多个属性
- (void)addAttributes:(NSDictionary *)attrs range:(NSRange)range;

d. 移除某范围内的某个属性
- (void)removeAttribute:(NSString *)name range:(NSRange)range;

4、为富文本中添加图片内容

    NSTextAttachment *attch = [[NSTextAttachment alloc] init];
    // 图片
    attch.image = [UIImage imageNamed:@"imgName"];
    attch.bounds = CGRectMake(10, 0, 50, 50);
    NSAttributedString *string = [NSAttributedString     attributedStringWithAttachment:attch];
    [str appendAttributedString:string];
    label.attributedText = str;

str为文字内容,富文本支持图片插入到文字文本到任何位置。

更多方法和属性说明详见苹果官方说明文档:
https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSMutableAttributedString_Class/index.html#//apple_ref/doc/uid/TP40003689

你可能感兴趣的:(iOS NSMutableAttributedString 富文本)