- 很多需求會出現(xiàn)如果某段字符串里有數(shù)字的話就變色义起,最重要的是字符串還是隨機的砌左,這就坑了脖咐!
- 下面就是針對這個問題的解決方案:
- (NSMutableAttributedString*)getString{NSString*detailStr = @"今日總拍品1200輛铺敌,您的心愿車56輛,趕緊去看看";
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc]initWithString:detailStr];
//找到數(shù)字在字符串中得位置
[[self findNumFromStr:detailStr] enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
NSRange range = [detailStr rangeOfString:obj];
if (range.location != NSNotFound)
{
NSLog(@"found at location = %lu, length = %lu",(unsigned long)range.location,(unsigned long)range.length);
[attributedString addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(range.location, range.length)];
}
else
{
NSLog(@"Not Found");
}
}];
return attributedString;
}
- (NSMutableArray*)findNumFromStr:(NSString*)originalString{
NSMutableArray*numberArray = [NSMutableArray array];
NSString*tempStr;
NSScanner*scanner = [NSScanner scannerWithString:originalString];
NSCharacterSet*numbers = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];
while (![scanner isAtEnd]) {
[scanner scanUpToCharactersFromSet:numbers intoString:NULL];
[scanner scanCharactersFromSet:numbers intoString:&tempStr];
if (tempStr && tempStr.length > 0) {
[numberArray addObject:tempStr];
}
tempStr = @"";
}
return numberArray;
}
最后編輯于 :
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者