神一样的需求造就一堆神一样的代码 。样式大概如图 数字部分是不固定长度? 可能是0.00 也可能是 666.66.
固定长度可以NSRang那种方法 长度不固定富文本也蛮恶心。安卓同事中间用了段H5我用富文本写了一堆自己看了就想吐的bug!
UILabel *la = [[UILabel alloc]init];
la.frame = CGRectMake(0, 100, self.view.frame.size.width, 100);
[self.view addSubview:la];
//实际提现 富文本
NSString *account = @"100.0000";
NSString *noAccount = @"66:00";
NSString *accountNum = @"9000:00";
//第一段
NSDictionary *dic1 = @{NSUnderlineStyleAttributeName: [NSNumber numberWithInteger:NSUnderlineStyleSingle]};
NSMutableAttributedString *att1 = [[NSMutableAttributedString alloc]initWithString:accountNum attributes:dic1];
[att1 addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0,accountNum.length)];
NSString *str2 = @" (到账 ";
NSDictionary *dic2 = @{NSFontAttributeName: [UIFont systemFontOfSize:10]};
NSMutableAttributedString *att2 = [[NSMutableAttributedString alloc]initWithString:str2 attributes:dic2];
[att2 addAttribute:NSForegroundColorAttributeName value:[UIColor lightGrayColor] range:NSMakeRange(0,str2.length)];
NSMutableAttributedString *att3 = [[NSMutableAttributedString alloc]initWithString:account];
[att3 addAttribute:NSFontAttributeName value: [UIFont systemFontOfSize:10] range:NSMakeRange(0,account.length)];
[att3 addAttribute:NSForegroundColorAttributeName value: [UIColor greenColor] range:NSMakeRange(0,account.length)];
NSString *str4 = [NSString stringWithFormat:@" 未到账:%@ )",noAccount];
NSDictionary *dic4 = @{NSFontAttributeName: [UIFont systemFontOfSize:10]};
NSMutableAttributedString *att4 = [[NSMutableAttributedString alloc]initWithString:str4 attributes:dic4];
[att4 addAttribute:NSForegroundColorAttributeName value:[UIColor lightGrayColor] range:NSMakeRange(0,str4.length)];
NSMutableAttributedString *attributedStr = [[NSMutableAttributedString alloc] initWithAttributedString: att1];
[attributedStr appendAttributedString:att2];
[attributedStr appendAttributedString: att3];
[attributedStr appendAttributedString: att4];
la.attributedText = attributedStr;
//改变指定字符颜色
NSString *allStr = @"123456789");
NSString *str =@"678";
// 设置字体颜色NSForegroundColorAttributeName,取值为 UIColor对象,默认值为黑色
NSMutableAttributedString *textColor = [[NSMutableAttributedString alloc] initWithString:allStr];
[textColor addAttribute:NSForegroundColorAttributeName
value:[UIColor redColor]
range:[allStr rangeOfString:str]];
self.numLa.attributedText = textColor;
* API: Character Attributes , NSAttributedString共有21个属性* *
1.NSFontAttributeName->设置字体属性,默认值:字体:Helvetica(Neue) 字号:12*
2.NSParagraphStyleAttributeName->设置文本段落排版格式,取值为 NSParagraphStyle对象(详情见下面的API说明) * 3.NSForegroundColorAttributeName->设置字体颜色,取值为 UIColor对象,默认值为黑色 * 4.NSBackgroundColorAttributeName->设置字体所在区域背景颜色,取值为 UIColor对象,默认值为nil, 透明色 * 5.NSLigatureAttributeName->设置连体属性,取值为NSNumber对象(整数),0表示没有连体字符,1表示使用默认的连体字符 * 6.NSKernAttributeName->设置字符间距,取值为 NSNumber对象(整数),正值间距加宽,负值间距变窄 * 7.NSStrikethroughStyleAttributeName->设置删除线,取值为 NSNumber对象(整数) * 8.NSStrikethroughColorAttributeName->设置删除线颜色,取值为 UIColor对象,默认值为黑色 * 9.NSUnderlineStyleAttributeName->设置下划线,取值为 NSNumber对象(整数),枚举常量 NSUnderlineStyle中的值,与删除线类似 *
10.NSUnderlineColorAttributeName->设置下划线颜色,取值为 UIColor对象,默认值为黑色 * 11.NSStrokeWidthAttributeName->设置笔画宽度(粗细),取值为 NSNumber对象(整数),负值填充效果,正值中空效果 * 12.NSStrokeColorAttributeName->填充部分颜色,不是字体颜色,取值为 UIColor对象 * 13.NSShadowAttributeName->设置阴影属性,取值为 NSShadow对象 * 14.NSTextEffectAttributeName->设置文本特殊效果,取值为 NSString对象,目前只有图版印刷效果可用 * 15.NSBaselineOffsetAttributeName->设置基线偏移值,取值为 NSNumber(float),正值上偏,负值下偏 * 16.NSObliquenessAttributeName->设置字形倾斜度,取值为 NSNumber(float),正值右倾,负值左倾 * 17.NSExpansionAttributeName->设置文本横向拉伸属性,取值为 NSNumber(float),正值横向拉伸文本,负值横向压缩文本 * 18.NSWritingDirectionAttributeName->设置文字书写方向,从左向右书写或者从右向左书写 * 19.NSVerticalGlyphFormAttributeName->设置文字排版方向,取值为 NSNumber对象(整数),0表示横排文本,1表示竖排文本 * 20.NSLinkAttributeName->设置链接属性,点击后调用浏览器打开指定URL地址 *
21.NSAttachmentAttributeName->设置文本附件,取值为NSTextAttachment对象,常用于文字图片混排