在NIAttributedLabel中设置链接的属性

时间:2012-09-30 05:27:31

标签: iphone objective-c ios ipad nimbus-ios

我已经完成了以下操作,为我的NIAttributedLabel中的链接添加了不同的颜色:

NSMutableDictionary *attributes = [NSMutableDictionary dictionary];
        [attributes setValue:[UIColor colorWithRed:86.0/255.0 green:134.0/255.0 blue:172.0/255.0 alpha:1.0] forKey:NSForegroundColorAttributeName];
        [attributes setValue:[UIColor colorWithRed:0.0 green:136/255.f blue:204/255.f alpha:1.0] forKey:NSForegroundColorAttributeName];
        [self.commentsText_ setAttributesForLinks:attributes];

但我没有在链接中看到两种不同的颜色,而是我只看到一种颜色。我在这做错了什么?基本上我有一个链接,我通过addLink添加如下:

[self.commentsText_ addLink:[NSURL URLWithString:url] range:usernameRange];

我想让它有redColor。我该怎么做?

2 个答案:

答案 0 :(得分:1)

如果您想为不同的链接使用不同的颜色,则需要创建单独的属性词典,并使用不同的词典调用setAttributesForLinks:

        NSMutableDictionary *attributes1 = [NSMutableDictionary dictionary];
        [attributes setValue:[UIColor colorWithRed:86.0/255.0 green:134.0/255.0 blue:172.0/255.0 alpha:1.0] forKey:NSForegroundColorAttributeName];  
        [self.commentsText1_ setAttributesForLinks:attributes1];

        NSMutableDictionary *attributes2 = [NSMutableDictionary dictionary];
        [attributes setValue:[UIColor colorWithRed:0.0 green:136/255.f blue:204/255.f alpha:1.0] forKey:NSForegroundColorAttributeName];  
        [self.commentsText2_ setAttributesForLinks:attributes2];

答案 1 :(得分:1)

如果您想为不同的链接设置不同的颜色,则应通过将linkColor设置为nil来禁用自动链接样式,然后将不同的样式明确应用于链接。