iOS开发程序员@IT·互联网

iOS 富文本NSMutableAttributedString

2017-05-04  本文已影响702人  wxzhi

初始化

1.常用:

NSMutableAttributedString *attrStr =[[NSMutableAttributedString alloc] initWithString:@"text"];

2.将需要编辑的内容转换成data,初始化成需要的类型,再转换为富文本。

例如:加载HTML文本,将含有html标签的字符串,初始化为HTML类型
NSMutableAttributedString * attrStr = [[NSMutableAttributedString alloc] initWithData:[@"<html>text<\html>" dataUsingEncoding: NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:nil error:nil];

富文本总结

常用方法

1.获取指定位置上的属性信息,并返回与指定位置属性相同并且连续的字符串的范围信息。

2.与另一个NSAttributedString 对象做对比返回bool值。

3.获取对象Substring

4.去除某一属性

5.指定范围内的子串,遍历子串上覆盖的属性信息

6.遍历指定范围内的属性信息和range信息

7.开始编辑

8.结束编辑

9.拼接attrString

10.插入attrString

11.替换

12.删除字符

Attribute属性

属性 作用 value对应对象
NSFontAttributeName 字体 UIFont
NSParagraphStyleAttributeName 段落样式 NSParagraphStyle
NSForegroundColorAttributeName 前景色 UIColor
NSBackgroundColorAttributeName 背景色 UIColor
NSObliquenessAttributeName 倾斜 NSNumber
NSExpansionAttributeName 扁平化 NSNumber:扁平比例
NSStrokeWidthAttributeName 填充(描边,加粗) NSNumber:正数为空心(描边),负数为填充(加粗)
NSStrokeColorAttributeName 填充颜色 UIColor
NSKernAttributeName 间距 NSNumber
NSUnderlineStyleAttributeName 下划线 枚举:默认为NSUnderlineStyleNone
NSUnderlineColorAttributeName 下划线颜色 UIColor
NSStrikethroughStyleAttributeName 删除线 枚举:默认为NSUnderlineStyleNone
NSStrikethroughColorAttributeName 删除线颜色 UIColor
NSLigatureAttributeName 连笔 NSNumber(0或1)
NSShadowAttributeName 阴影 NSShawdow
NSTextEffectAttributeName 设置文本特殊效果,目前只有图版印刷效果可以用 NSString
NSAttachmentAttributeName 设置文本附件,常用插入图片 NSTextAttachment
NSLinkAttributeName 链接 NSURL和NSString
NSBaselineOffsetAttributeName 基准线偏移 NSNumber
NSWritingDirectionAttributeName 文字方向 NSArray<NSNumber >
NSVerticalGlyphFormAttributeName 水平或者竖直文本 NSNumber @1或@(YES)竖直 @0或@(NO)水平

段落样式(常用的)

NSMutableParagraphStyle *style = [[NSMutableParagraphStyle 
alloc]init];
style.lineSpacing = 10; // 行距
style.paragraphSpacing = 20; // 段距
style.firstLineHeadIndent = 30; // 首行缩进

阴影

NSShadow *shadow = [[NSShadow alloc]init];
shadow.shadowOffset = CGSizeMake(2, 2);
shadow.shadowColor = [UIColor orangeColor];
shadow.shadowBlurRadius = 1;

用法

NSMutableAttributedString *attrStr = [[NSMutableAttributedString 
alloc] initWithString:label];
NSRange range = NSMakeRange(0, attrStr.length);
// 字体倾斜
[attrStr addAttribute:NSObliquenessAttributeName value:@(0.5) range:range];
// 字体加粗
[attrStr addAttribute:NSStrokeWidthAttributeName value:@(-3) range:range];
// 设置字体
[attrStr addAttribute:NSFontAttributeName value:[UIFont 
fontWithName:@"JingLeiFontName" size:16] range:range];
label.attributedText = attrStr;

ps:平常基本不怎么发布文章,这算是我在简书的处女作了,但是看到有兄弟们mark时还是感到开心,有空时,我会上传多几篇文章,和兄弟们一起学习

参考链接

NSAttributedString使用
AttributeString 属性
富文本NSAttributedString与NSMutableAttributedString

上一篇 下一篇

猜你喜欢

热点阅读