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

样式

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 改变字符串中所有指定字符串的颜色)