1.遍历字符串,获取所有括号中字符串,返回数组:
传入:NSString *str = @"【管理员】请您审核【山西建邦集团有限公司】的商品";
返回值:NSArray *ary = @[【管理员】,【山西建邦集团有限公司】];
//找出字符串中用括号括住的字符串们
- (NSArray *)handleStringWithString:(NSString *)str{
NSMutableArray *chooseAry = [@[] mutableCopy];
NSMutableString * muStr = [NSMutableString stringWithString:str];
while ([muStr containsString:@"【"]) {
NSString *chooseStr = @"";
NSRange range = [muStr rangeOfString:@"【"];
NSRange range1 = [muStr rangeOfString:@"】"];
if (range.location != NSNotFound) {
NSInteger loc = range.location;
NSInteger len = range1.location - range.location;
chooseStr = [muStr substringWithRange:NSMakeRange(loc, len + 1)];
[chooseAry addObject:chooseStr];
[muStr deleteCharactersInRange:NSMakeRange(loc, len + 1)];
}
}
return chooseAry;
}
2.将处理过的字符串赋值给Label:
self.contentLabel.attributedText = [self setTextColor:contentStr chooseAry:[self handleStringWithString:contentStr] color:kColorHex(0x333333) fontSize:15];
// 处理字符串
- (NSMutableAttributedString *)setTextColor:(NSString *)text chooseAry:(NSArray *)chooseAry color:(UIColor *)color fontSize:(CGFloat)fontSize{
NSMutableAttributedString *contentStr = [[NSMutableAttributedString alloc]initWithString:text];
for (NSString *str in chooseAry) {
//找出特定字符在整个字符串中的位置
NSRange redRange = NSMakeRange([[contentStr string] rangeOfString:str].location, [[contentStr string] rangeOfString:str].length);
//修改特定字符的颜色
[contentStr addAttribute:NSForegroundColorAttributeName value:color range:redRange];
if (fontSize > 0) {
//修改特定字符的字体大小
[contentStr addAttribute:NSFontAttributeName value:[UIFont boldSystemFontOfSize:fontSize] range:redRange];
}
}
return contentStr;
}
网友评论