美文网首页iOS 常见问题汇总
改变Label某一段文字的大小和颜色-iOS

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

作者: 快乐的tomato | 来源:发表于2018-07-16 14:35 被阅读13次

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

        本文链接:https://www.haomeiwen.com/subject/qfmvpftx.html