在ios开发过程中,总是会遇到一段话需要给不同的颜色以及不同字的大小,这个时候会使用到NSMutableAttributedString,以下是我自己写的一段代码,大家看看吧(复制可以直接跑).
上码:
UILabel *inLabel = [[UILabel alloc]initWithFrame:CGRectMake(95, 64, 190, 70)];
inLabel.backgroundColor = [UIColor cyanColor];
//infoLabel.backgroundColor = [UIColor clearColor];
inLabel.textAlignment = NSTextAlignmentLeft;
inLabel.font = [UIFont systemFontOfSize:13];
inLabel.numberOfLines = 0;
// infoLabel.textColor = [UIColor cyanColor];
[self.view addSubview:inLabel];
NSString *inString = @"连续签到1天得10积分;\n连续签到2天得15积分;\n连续签到3天及以上得20积分;\n注: 若连续签到终端则重新计算";
// NSString * ha = [NSString stringWithFormat:@"注:"];
// NSString * ha2 = [NSString stringWithFormat:@"1"];
// NSString * ar = [NSString stringWithFormat:@"%@,%@",ha2]
// NSRange infoRange = [infoString rangeOfString:@"注:"];
NSMutableAttributedString *inATString = [[NSMutableAttributedStringalloc]initWithString:inString ];
// [infoATString addAttribute:(NSString *)NSForegroundColorAttributeName
// value:(id)[UIColor redColor]
// range:infoRange];
[inATString addAttribute:NSForegroundColorAttributeName value:[UIColoryellowColor] range:NSMakeRange(4, 1)];
[inATString addAttribute:NSForegroundColorAttributeName value:[UIColoryellowColor] range:NSMakeRange(7,2)];
// NSRange range = NSMakeRange(infoString.length-1, 1);
//[infoATString addAttribute:(NSString *)kCTFontAttributeName value:(id)[UIFont systemFontOfSize:10] range:range];
[inLabel setAttributedText:inATString];