在TTTAttributedLabel中,两种不同的文本颜色不起作用

时间:2018-08-16 08:00:24

标签: ios objective-c colors tttattributedlabel

我正在使用v-for并设置“带有#tag和www.example.com的文本”之类的文本

我的需要为“ www.example.com” 设置为 redColor ,为“#tag” 设置为 greenColor >。

但是它设置为蓝色。

以下是我的代码:

TTTAttributedLabel

如何解决此问题。
请帮帮我!

1 个答案:

答案 0 :(得分:2)

您可以使用这种方式来更改NSMutableAttributedString的文本颜色

NSMutableAttributedString *attributedstring = [[NSMutableAttributedString alloc] initWithString:@"text with #tag and www.example.com"];
attributedstring = [self updateString:attributedstring withChangeColorForText:@"#tag" withColor:[UIColor redColor]];
attributedstring = [self updateString:attributedstring withChangeColorForText:@"www.example.com" withColor:[UIColor greenColor]];

label.attributedText = attributedstring;

updateString方法:

- (NSMutableAttributedString *)updateString:(NSMutableAttributedString *)mainAttributedString withChangeColorForText:(NSString*)searchText withColor:(UIColor*) color

{

NSRange range = [mainAttributedString.string rangeOfString:searchText options:NSCaseInsensitiveSearch];

if (range.location != NSNotFound) {
    [mainAttributedString addAttribute:NSForegroundColorAttributeName value:color range:range];
}

return mainAttributedString;

}