我想知道如何更改字符串中子字符串的颜色。 例如,我有以下原始黑色子字符串:
NSString *original=@"Frank Megan Timmy
Marcus Andrea Matt
Jamie Lauren Marcus";
让我们假设用户已经做了一些事情,我想让Marcus Andrea Matt在原始字符串中变成红色(例如),并保持其他所有内容相同。
有谁能告诉我这是怎么做到的?
答案 0 :(得分:1)
NSMutableAttributedString * string = [[NSMutableAttributedString alloc] initWithString:@"Frank Megan Timmy Marcus Andrea Matt Jamie Lauren Marcus"];
[string addAttribute:NSForegroundColorAttributeName value:[UIColor greenColor] range:NSMakeRange(0,18)];
[string addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(18,18)];
[string addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange(36,20)];
UILabel *label=[[UILabel alloc] initWithFrame:CGRectMake(0, 0, 250, 80)];
[label setLineBreakMode:NSLineBreakByWordWrapping];
[label setNumberOfLines:0];
[label setAttributedText:string];
[self.view addSubview:label];
答案 1 :(得分:0)
使用NSMutableAttributedString
执行此操作。
将original
的类型更改为NSMutableAttributedString
并使用
[original addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:yourRange];
答案 2 :(得分:0)
请找到以下解决方案:
NSString *original=@"Frank Megan Timmy
Marcus Andrea Matt
Jamie Lauren Marcus";
NSMutableAttributedString* attrStr = [NSMutableAttributedString attributedStringWithString:original];
/ now we only change the color of "Frank"
[attrStr setTextColor:[UIColor redColor] range:NSMakeRange(0,5)];