美文网首页
iOS匹配所有字符变色字体操作

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

作者: Suger_森 | 来源:发表于2019-01-18 11:51 被阅读17次

    方法一

    /**
     获取匹配所有字段
    
     @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匹配所有字符变色字体操作

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