美文网首页UILabel
iOS 改变字符串中所有指定字符串的颜色

iOS 改变字符串中所有指定字符串的颜色

作者: 失忆的程序员 | 来源:发表于2022-02-23 10:33 被阅读0次

    样式

    001.png

    代码

    
    /**
     * 字符串中 指定 字符串 变颜色
     *  label.attributedText = 方法
     @ textStr  : 字符串
     @ searchstr    : 要处理的字符串
     @ color    : 处理的字符串 给的颜色
     */
    + (NSMutableAttributedString *)onModifyStr:(NSString *)textStr subsearchstr:(NSString *)searchstr color:(UIColor *)color
    { 
        NSMutableAttributedString *nameString = [[NSMutableAttributedString alloc] initWithString:textStr];
        if (textStr.length == 0 || searchstr.length == 0)
        { // 防止卡死
            return nameString;
        }
        for (int i = 0; i < textStr.length; i++)
        {
            if ((textStr.length - i) < searchstr.length)
            {  //防止遍历剩下的字符少于搜索条件的字符而崩溃
       
            }
            else
            {
                NSString *str = [textStr substringWithRange:NSMakeRange(i, searchstr.length)];
                if ([searchstr isEqualToString:str])
                {
                        [nameString addAttribute:NSForegroundColorAttributeName value:color range:NSMakeRange(i, searchstr.length)];
                        i = i + (int)(searchstr.length) - 1;
                }
            }
        }
        return nameString;
    }
    

    样式

    002.png

    代码

    
    /**
     * 设置UILable 的字体和颜色
     @ label            :要设置的控件
     @ str                :要设置的字符串
     @ textArray      :有几个文字需要设置
     @ colorArray     :有几个颜色
     @ fontArray      :有几个字体
     */
    - (void)setTextColorAndFont:(UILabel *)label str:(NSString *)string textArray:(NSArray *)textArray colorArray:(NSArray *)colorArray fontArray:(NSArray *)fontArray
    {
        NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:string];
        for (int i = 0; i < [textArray count]; i++)
        {
            NSRange range1 = [[str string] rangeOfString:textArray[i]];
            [str addAttribute:NSForegroundColorAttributeName value:colorArray[i] range:range1];
            [str addAttribute:NSFontAttributeName value:fontArray[i] range:range1];
        }
        label.attributedText = str;
    }
    
    

    样式

    003.png

    相关文章

      网友评论

        本文标题:iOS 改变字符串中所有指定字符串的颜色

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