NSAttributedString共有21种效果
核心API:
NSAttributedString
NSMutableAttributedString
三种初始化方法:
NSAttributedString
1、initWithString:
2、initWithString:attributes:
3、initWithAttributedString:
NSMutableAttributedString没有初始化方法,使用父类初始化方法
序号 | 属性 | 作用 | 类型 | 备注 |
---|---|---|---|---|
1 | NSFontAttributeName | 设置字体属性 | UIFont | 默认值:字体:Helvetica(Neue) 字号:12 |
2 | NSForegroundColorAttributeName | 设置字体颜色 | UIColor | 默认值为黑色 |
3 | NSBackgroundColorAttributeName | 设置字体所在区域背景颜色 | 取值为 UIColor对象 | 默认值为nil |
4 | NSLigatureAttributeName | 设置连体属性 | NSNumber | 0 表示没有连体字符,1 表示使用默认的连体字符,一般中文用不到,在英文中可能出现相邻字母连笔的情况 |
5 | NSKernAttributeName | 设置字符间距 | NSNumber | 正值间距加宽,负值间距变窄,0表示禁用了字距调整。 |
6 | NSParagraphStyleAttributeName | 设置文本段落排版格式 | NSParagraphStyle | 默认defaultParagraphStyle |
7 | NSStrikethroughStyleAttributeName | 删除线 | NSNumber | 默认0:无删除 |
8 | NSStrikethroughColorAttributeName | 设置删除线颜色 | UIColor | 默认值为黑色 |
9 | NSUnderlineStyleAttributeName | 设置下划线 | NSNumber | NSUnderlineStyle中的值,与删除线类似,默认0:无下划线 |
10 | NSUnderlineColorAttributeName | 设置下划线颜色 | UIColor | 默认值为黑色 |
11 | NSStrokeWidthAttributeName | 设置笔画宽度(粗细) | NSNumber | 负值填充效果,正值中空效果,(概述文本的典型值为3.0) |
12 | NSStrokeColorAttributeName | 填充部分颜色,不是字体颜色 | UIColor | 默认nil |
13 | NSShadowAttributeName | 设置阴影属性 | NSShadow | |
14 | NSTextEffectAttributeName | 设置文本特殊效果 | NSString | 默认nil:无文本效果,目前只有图版印刷效果可用 |
15 | NSBaselineOffsetAttributeName | 设置基线偏移值 | NSNumber | 默认为0,正值上偏,负值下偏 |
16 | NSObliquenessAttributeName | 设置字形倾斜度 | NSNumber | 正值右倾,负值左倾,默认0:无倾斜 |
17 | NSExpansionAttributeName | 设置文本横向拉伸属性 | NSNumber | 正值横向拉伸文本,负值横向压缩文本,默认0:没有拉伸 |
18 | NSWritingDirectionAttributeName | 设置文字书写方向 | NSNumber | 从左向右书写或者从右向左书写 |
19 | NSVerticalGlyphFormAttributeName | 设置文字排版方向 | NSNumber | 0 表示横排文本,1 表示竖排文本,目前在iOS上,它总是水平的。任何其他值的行为都是未定义的。 |
20 | NSAttachmentAttributeName | 设置文本附件 | NSTextAttachment | 常用于文字图片混排,默认nil |
21 | NSLinkAttributeName | 设置链接属性,点击后调用浏览器打开指定URL地址 | NSURL | 点击后调用浏览器打开指定URL地址(适用于UITextView) |
1. NSFontAttributeName -> 设置字体属性,默认值:字体:Helvetica(Neue) 字号:12
NSAttributedString *att1 = [[NSAttributedString alloc] initWithString:@"01-设置字体大小-默认字体" attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:15]}];
att1 = [[NSAttributedString alloc] initWithString:@"01-设置字体大小-粗体" attributes:@{NSFontAttributeName : [UIFont boldSystemFontOfSize:15]}];
att1 = [[NSAttributedString alloc] initWithString:@"01-设置字体大小-斜体" attributes:@{NSFontAttributeName : [UIFont italicSystemFontOfSize:15]}];
2. NSForegroundColorAttributeName ->设置字体颜色,取值为 UIColor对象,默认值为黑色
NSAttributedString *att2 = [[NSAttributedString alloc] initWithString:@"02-设置字体颜色" attributes:@{NSForegroundColorAttributeName : [UIColor redColor]}];
3. NSBackgroundColorAttributeName ->设置字体所在区域背景颜色,取值为 UIColor对象,默认值为nil, 透明色
NSAttributedString *att3 = [[NSAttributedString alloc] initWithString:@"03-设置背景颜色" attributes:@{NSBackgroundColorAttributeName : [UIColor redColor]}];
4. NSLigatureAttributeName ->设置连体属性,取值为NSNumber 对象(整数),0 表示没有连体字符,1 表示使用默认的连体字符,一般中文用不到,在英文中可能出现相邻字母连笔的情况
NSAttributedString *att4 = [[NSAttributedString alloc] initWithString:@"04-设置连体属性abcdefghijkl" attributes:@{NSLigatureAttributeName : @1}];
5. NSKernAttributeName ->设置字符间距,取值为 NSNumber 对象(整数),正值间距加宽,负值间距变窄,0表示禁用了字距调整。
NSAttributedString *att5 = [[NSAttributedString alloc] initWithString:@"5-设置字符间距" attributes:@{NSKernAttributeName : @10}];
6. NSParagraphStyleAttributeName ->设置文本段落排版格式(包含字间距、行间距等属性),取值为 NSParagraphStyle 对象(详情见下面的API说明),默认defaultParagraphStyle
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.lineSpacing = 10; // 字体的行间距
// paragraphStyle.firstLineHeadIndent = 20.0f; // 首行缩进
// paragraphStyle.alignment = NSTextAlignmentJustified; //(两端对齐的)文本对齐方式:(左,中,右,两端对齐,自然)
// paragraphStyle.lineBreakMode = NSLineBreakByTruncatingTail; // 结尾部分的内容以……方式省略 ( "...wxyz" ,"abcd..." ,"ab...yz")
// paragraphStyle.headIndent = 20; // 整体缩进(首行除外)
// paragraphStyle.tailIndent = 20; //
// paragraphStyle.minimumLineHeight = 10; // 最低行高
// paragraphStyle.maximumLineHeight = 20; // 最大行高
// paragraphStyle.paragraphSpacing = 15; // 段与段之间的间距
// paragraphStyle.paragraphSpacingBefore = 22.0f; // 段首行空白空间
// paragraphStyle.baseWritingDirection = NSWritingDirectionLeftToRight;// 从左到右的书写方向
// paragraphStyle.lineHeightMultiple = 15;// 在受到最小线高和最大线高的约束之前,将自然线高乘以这个因子(如果为正)。
// paragraphStyle.hyphenationFactor = 1; // 连字属性 在iOS,唯一支持的值分别为0和1
NSAttributedString *att6 = [[NSAttributedString alloc] initWithString:@"06-设置排版样式(包含字间距、行间距等属性)-设置排版样式(包含字间距、行间距等属性)-设置排版样式(包含字间距、行间距等属性)-设置排版样式(包含字间距、行间距等属性)" attributes:@{NSParagraphStyleAttributeName:paragraphStyle}];
7. NSStrikethroughStyleAttributeName ->设置删除线,取值为 NSNumber 对象(整数),默认0:无删除
NSAttributedString *att7 = [[NSAttributedString alloc] initWithString:@"7-设置删除线" attributes:@{NSStrikethroughStyleAttributeName : @3}];
8. NSStrikethroughColorAttributeName ->设置删除线颜色,取值为 UIColor 对象,默认值为黑色
NSAttributedString *att8 = [[NSAttributedString alloc] initWithString:@"8-设置删除线颜色" attributes:@{NSStrikethroughStyleAttributeName : @3,NSStrikethroughColorAttributeName:[UIColor redColor]}];
9. NSUnderlineStyleAttributeName ->设置下划线,取值为 NSNumber 对象(整数),枚举常量 NSUnderlineStyle中的值,与删除线类似,默认0:无下划线
NSAttributedString *att9 = [[NSAttributedString alloc] initWithString:@"09-设置下划线" attributes:@{NSUnderlineStyleAttributeName : @(NSUnderlineStyleSingle)}];
10. NSUnderlineColorAttributeName ->设置下划线颜色,取值为 UIColor 对象,默认值为黑色
NSAttributedString *att10 = [[NSAttributedString alloc] initWithString:@"10-设置下划线颜色" attributes:@{NSUnderlineStyleAttributeName : @(NSUnderlineStyleSingle),NSUnderlineColorAttributeName:[UIColor redColor]}];
11. NSStrokeWidthAttributeName ->设置笔画宽度(粗细),取值为 NSNumber 对象(整数),负值填充效果,正值中空效果,(概述文本的典型值为3.0)
NSAttributedString *att11 = [[NSAttributedString alloc] initWithString:@"11-设置画笔颜色" attributes:@{NSStrokeWidthAttributeName:@5}];
12. NSStrokeColorAttributeName ->填充部分颜色,不是字体颜色,取值为 UIColor 对象,默认nil
NSAttributedString *att12 = [[NSAttributedString alloc] initWithString:@"12-设置画笔颜色" attributes:@{NSStrokeWidthAttributeName:@5,NSStrokeColorAttributeName:[UIColor redColor]}];
13. NSShadowAttributeName ->设置阴影属性,取值为 NSShadow 对象
NSShadow *shadow = [[NSShadow alloc]init];
shadow.shadowOffset = CGSizeMake(5, 5);
shadow.shadowColor = [UIColor greenColor];
NSAttributedString *att13 = [[NSAttributedString alloc] initWithString:@"13-设置阴影属性" attributes:@{NSShadowAttributeName:shadow}];
14. NSTextEffectAttributeName ->设置文本特殊效果,取值为 NSString 对象,默认nil:无文本效果,目前只有图版印刷效果可用
NSAttributedString *att14 = [[NSAttributedString alloc] initWithString:@"14-设置文本特殊效果" attributes:@{NSTextEffectAttributeName:NSTextEffectLetterpressStyle}];
15. NSBaselineOffsetAttributeName ->设置基线偏移值,取值为 NSNumber (float),默认为0,正值上偏,负值下偏
NSAttributedString *att15 = [[NSAttributedString alloc] initWithString:@"15-设置基线偏移量" attributes:@{NSBaselineOffsetAttributeName:@15}];
16. NSObliquenessAttributeName ->设置字形倾斜度,取值为 NSNumber (float),正值右倾,负值左倾,默认0:无倾斜
NSAttributedString *att16 = [[NSAttributedString alloc] initWithString:@"16-设置基线偏移量" attributes:@{NSObliquenessAttributeName:@0.8}];
17. NSExpansionAttributeName ->设置文本横向拉伸属性,取值为 NSNumber (float),正值横向拉伸文本,负值横向压缩文本,默认0:没有展开
NSAttributedString *att17 = [[NSAttributedString alloc] initWithString:@"17-设置文本横向拉伸属性" attributes:@{NSExpansionAttributeName:@1.0}];
18. NSWritingDirectionAttributeName ->设置文字书写方向,从左向右书写或者从右向左书写
NSAttributedString *att18 = [[NSAttributedString alloc] initWithString:@"18-设置文本书写方向" attributes:@{NSWritingDirectionAttributeName:@[@3]}];
19. NSVerticalGlyphFormAttributeName ->设置文字排版方向,取值为 NSNumber 对象(整数),0 表示横排文本,1 表示竖排文本,目前在iOS上,它总是水平的。任何其他值的行为都是未定义的。
NSAttributedString *att19 = [[NSAttributedString alloc] initWithString:@"19-设置文本排版方向" attributes:@{NSVerticalGlyphFormAttributeName:@1}];
20. NSAttachmentAttributeName ->设置文本附件,取值为NSTextAttachment对象,常用于文字图片混排,默认nil
NSMutableAttributedString * att20 = [[NSMutableAttributedString alloc] init];
NSAttributedString *att = [[NSAttributedString alloc] initWithString:@"20-设置文本附件"];
[att20 appendAttributedString:att];
// 设置图片
NSTextAttachment *attach = [[NSTextAttachment alloc] initWithData:nil ofType:nil];
attach.bounds = CGRectMake(0, 0, 15, 15);
attach.image = [UIImage imageNamed:@"guanli"];
NSAttributedString *strAtt = [NSAttributedString attributedStringWithAttachment:attach];
[att20 appendAttributedString:strAtt];
21. NSLinkAttributeName ->设置链接属性,点击后调用浏览器打开指定URL地址(适用于UITextView)
NSString *strLink =@" 21-设置链接属性";
NSAttributedString *att21 = [[NSAttributedString alloc] initWithString:strLink attributes:@{NSLinkAttributeName: [NSURL URLWithString:@"http://www.baidu.com"]}];