處理所有整數(shù)字部分加大:
//處理所有整數(shù)字部分加大续担,如:"拼團(tuán)價(jià):¥777.77-¥888.88-¥999.99"
+ (NSAttributedString *)formattedPriceFromString:(NSString *)text {
NSMutableAttributedString *result = [[NSMutableAttributedString alloc] initWithString:text];
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(\\d+)(\\.\\d+)?|[^\\d]" options:0 error:nil];
UIFont *largeFont = [UIFont boldSystemFontOfSize:18];
UIFont *smallFont = [UIFont systemFontOfSize:12];
// 設(shè)置默認(rèn)字體為 smallFont
[result addAttribute:NSFontAttributeName value:smallFont range:NSMakeRange(0, text.length)];
// 查找并設(shè)置數(shù)字部件的largeFont
NSArray<NSTextCheckingResult *> *matches = [regex matchesInString:text options:0 range:NSMakeRange(0, text.length)];
for (NSTextCheckingResult *match in matches) {
// 整數(shù)部分
NSRange intRange = [match rangeAtIndex:1];
if (intRange.location != NSNotFound) {
[result addAttribute:NSFontAttributeName value:largeFont range:intRange];
}
// 小數(shù)部分
NSRange fracRange = [match rangeAtIndex:2];
if (fracRange.location != NSNotFound) {
[result addAttribute:NSFontAttributeName value:smallFont range:fracRange];
}
}
return result;
}
使用:
NSString *priceStr = @"拼團(tuán)價(jià)¥888.88-¥999.99";
NSAttributedString *attr = [Tools formattedPriceFromString:priceStr];
self.priceLabel.attributedText = attr;
實(shí)現(xiàn)效果:
2個(gè).png
無(wú)數(shù)個(gè)都可以.png
總之:
只有是數(shù)字并且是整數(shù)部分陌选,字號(hào)才被加大,其他部分一律小字體!