iOS匹配所有字符变色字体操作

方法一

/**
 获取匹配所有字段

 @param String 原字符串
 @param searchString 要匹配的字符串
 @return range数组(使用 NSRangeFromString(<#NSString * _Nonnull aString#>)转换成NSRange)
 */
+ (NSArray *)getRangeWithString:(NSString *)String searchString:(NSString *)searchString;
+ (NSArray *)getRangeWithString:(NSString *)String searchString:(NSString *)searchString{
    NSArray * stringArr = [String componentsSeparatedByString:searchString];
    if (stringArr.count == 0) {
        return @[];
    }
    NSMutableArray * rangeArr = [[NSMutableArray alloc]init];
    NSInteger index = 0;
    for (NSString * string in stringArr) {
        NSRange range = NSMakeRange(index, searchString.length);
        index = index + string.length + searchString.length;
        [rangeArr addObject:NSStringFromRange(range)];
    }
    return rangeArr;
}

方法二

NSMutableAttributedString *newString = [[NSMutableAttributedString alloc] initWithString:@"要匹配的字符"];
    
NSRegularExpression *regex = [[NSRegularExpression alloc]initWithPattern:@"匹配的字符" options:NSRegularExpressionCaseInsensitive error:nil];
    
    [regex enumerateMatchesInString:self.model.showtitle options:NSMatchingReportProgress range:NSMakeRange(0, newString.length) usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop) {
        
        [newString addAttribute:(NSString*)NSForegroundColorAttributeName
                          value:[UIColor redColor]
                          range:result.range];
    }];
    self.aTitle.attributedText = newString;

你可能感兴趣的:(iOS匹配所有字符变色字体操作)