NSAttributedString 链接如何指定多种颜色?

想在 AttributedString 里多个链接给予不同的颜色,如何实现?

    NSString *str = @"红色 , 蓝色 , 绿色";
    NSMutableAttributedString *attributeString = [[NSMutableAttributedString alloc] initWithString:str attributes:nil];

    [attributeString addAttribute:NSLinkAttributeName value:@"1" range:[str rangeOfString:@"红色"]];
    [attributeString addAttribute:NSLinkAttributeName value:@"1" range:[str rangeOfString:@"蓝色"]];
    [attributeString addAttribute:NSLinkAttributeName value:@"1" range:[str rangeOfString:@"绿色"]];

然后用 NSForegroundColorAttributeName 还是改变不了链接的颜色:

[attributeString addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:[str rangeOfString:@"红色"]];

这样也不行:

[attributeString addAttributes:@{NSForegroundColorAttributeName:[UIColor redColor], NSLinkAttributeName : @"1"} range:[str rangeOfString:@"红色"]];
阅读 13.1k
2 个回答
[attributeString setAttributes:@{NSForegroundColorAttributeName:[UIColor redColor], NSLinkAttributeName:[NSURL URLWithString:@"http://www.google.com"] } range:[str rangeOfString:@"红色"]];
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进