在iOS开发中,常常会有一段文字显示不同的颜色和字体,或者给某几个文字加删除线或下划线行间距的需求。就需要富文本来实现。
一、实例化方法和使用方法
NSMutableAttributedString *detailStr = [[NSMutableAttributedString alloc] initWithString:detailString];
NSRange stringRange = NSMakeRange(0, 5);
[detailStr addAttribute:NSForegroundColorAttributeName value:[UIColor colorWithHexString:@"#999999"] range:stringRange];// 添加单个属性
[detailStr addAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:14],NSParagraphStyleAttributeName:paragraphStyle} range:NSMakeRange(0, detailString.length)];// 添加多个属性
[detailLabel setAttributedText:detailStr];
二、富文本属性
属性 | 作用 | 类型 |
---|---|---|
NSFontAttributeName | 字号 | UIFont 默认12 |
NSParagraphStyleAttributeName | 段落样式 | NSParagraphStyle |
NSForegroundColorAttributeName | 前景色 | UIColor |
NSBackgroundColorAttributeName | 背景色 | UIColor |
NSLigatureAttributeName | 连笔字 | 1或0 |
NSKernAttributeName | 字间距 | CGFloat |
NSStrikethroughStyleAttributeName | 删除线 | 1或0 |
NSUnderlineStyleAttributeName | 下划线 | 1或0 |
NSStrokeColorAttributeName | same as foreground color | UIColor |
NSStrokeWidthAttributeName | 字体描边 | CGFloat |
NSShadowAttributeName | 阴影 | NSShawdow |
NSTextEffectAttributeName | 设置文本特殊效果,目前只有图版印刷效果可用 | NSString |
NSAttachmentAttributeName | 设置文本附件,常用插入图片 | NSTextAttachment |
NSLinkAttributeName | 链接 | NSURL (preferred) or NSString |
NSBaselineOffsetAttributeName | 基准线偏移 | NSNumber |
NSUnderlineColorAttributeName | 下划线颜色 | UIColor |
NSStrikethroughColorAttributeName | 删除线颜色 | UIColor |
NSObliquenessAttributeName | 字体倾斜 | NSNumber |
NSExpansionAttributeName | 字体加粗 | NSNumber 比例 0就是不变 1增加一倍 |
NSWritingDirectionAttributeName | 文字方向 分别代表不同的文字出现方向等等 | @[@(1),@(2)] |
NSVerticalGlyphFormAttributeName | 水平或者竖直文本 在iOS,不支持竖版 | 1竖直 0水平 |
三、段落样式
段落样式主要改行距、段距、首行缩进、最大最小行高、多倍行距等十几个属性
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.lineSpacing = 5;
paragraphStyle.alignment = NSTextAlignmentLeft;
paragraphStyle.lineBreakMode = NSLineBreakByCharWrapping;