在开发项目的过程中,会遇到改变某一段文字,或者特定文字的颜色和大小的需求,在这里终结一下。
1、快速创建一个Label
放到工具类里面
+ (UILabel *)createLabelWithTitle:(NSString *)title textColor:(UIColor *)textColor textFont:(CGFloat)textFont addSubView:(UIView *)subView{
UILabel *label = [[UILabel alloc] init];
label.text = title;
label.textColor = textColor;
label.font = KFONT(textFont);
[subView addSubview:label];
return label;
}
//设置字体样式
self.label.font = [UIFont fontWithName:@"PingFangSC-Regular" size:14.f];
2、用 NSMutableAttributedString改变字体
NSString *timeString = @"刘德华在2018开演唱会";
NSMutableAttributedString *timeAttrString = [[NSMutableAttributedString alloc] initWithString:timeString];
//设置刘德华三个字的的字体大小为12
//NSMakeRange(0, 3)从0开始的3个字符
[timeAttrString addAttributes:@{NSFontAttributeName:[UIFont fontWithName:@"PingFangSC-Regular" size:12.f]} range:NSMakeRange(0, 3)];//NSMakeRange(0, 3)
//设置刘德华三个字的的字体颜色为红色
[timeAttrString addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange((0, 3)];
self.label.attributedText = timeAttrString;
3、进行改造,改变某一特定字符
比如10.23%,改变百分号的大小和颜色
[ToolObject LabelAttributedString:self.label firstW:@"%" toSecondW:@"%" color:RGBA(234, 78, 67, 1) size:10];
//改变字体的颜色
+(void)LabelAttributedString:(UILabel*)label firstW:(NSString *)oneW toSecondW:(NSString *)twoW color:(UIColor *)color size:(CGFloat)size{
// 创建Attributed
NSMutableAttributedString *noteStr = [[NSMutableAttributedString alloc] initWithString:label.text];
// 需要改变的第一个文字的位置
NSUInteger firstLoc = [[noteStr string] rangeOfString:oneW].location;
// 需要改变的最后一个文字的位置
NSUInteger secondLoc = [[noteStr string] rangeOfString:twoW].location+1;
// 需要改变的区间
NSRange range = NSMakeRange(firstLoc, secondLoc - firstLoc);
// 改变颜色
[noteStr addAttribute:NSForegroundColorAttributeName value:color range:range];
// 改变字体大小及类型
[noteStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:size] range:range];
// 为label添加Attributed
[label setAttributedText:noteStr];
}
网友评论