改变Label某一段文字的大小和颜色-iOS

在开发项目的过程中,会遇到改变某一段文字,或者特定文字的颜色和大小的需求,在这里终结一下。
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];
}

你可能感兴趣的:(改变Label某一段文字的大小和颜色-iOS)