iOSはすべての文字の変色フォント操作に一致します

1559 ワード

方法1
/**
         

 @param String     
 @param searchString        
 @return range  (   NSRangeFromString()   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;
}
方法2
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;