开发中经常用到一个label上显示不同的字体,比如:
这些文字都是大小、颜色不同,但是创建的只是一个Label
代码:
// 创建Attributed
NSMutableAttributedString *noteStr = [[NSMutableAttributedString alloc] initWithString:@" "];
// 需要改变的第一个文字的位置
NSUInteger firstLoc = [[noteStr string] rangeOfString:@“ ”].location;
// 需要改变的最后一个文字的位置
NSUInteger secondLoc = [[noteStr string] rangeOfString:@“”].location;
// 需要改变的区间
NSRange range = NSMakeRange(firstLoc, secondLoc - firstLoc);
// 改变颜色
[noteStr addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:range];
// 改变字体大小及类型
[noteStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:15] range:range];
提示: 可以将这段代码封装起来,单独调用,传入所需要改变的字体、大小、和颜色,最后 reture noteStr
-(NSMutableAttributedString *)changeLabelText:(NSString *)needText fristText:(NSString *)fText lastText:(NSString *)lText changeColor:(UIColor *)changeColor textFont:(UIFont *)textFont{}
***** 注意一定要先设置字体规格,再去改变区间颜色
------------------------这 样---------------------------
NSString *title2=@"您已成功提交申请,请耐心等待审核结果请在【我的订单】查看申请状态";
_textlabel = [[UILabel alloc] initWithFrame:CGRectMake(20*unitPX, 190*unitPX, MAIN_WIDTH-40*unitPX, 70*unitPX)];
_textlabel.textColor = COLOR(125, 125, 125, 1);
_textlabel.font = [UIFont systemFontOfSize:14*unitPX];
_textlabel.text = title2;
------------------再设置改变区域颜色-----------------------
NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:title2];
NSRange range1 = [[str string] rangeOfString:@"【我的订单】"];
[str addAttribute:NSForegroundColorAttributeName value:theMainColor range:range1];
_textlabel.attributedText = str;
_textlabel.textAlignment = NSTextAlignmentCenter;
_textlabel.numberOfLines = 2;
网友评论