Настройка атрибутов для ссылок в NIAttributedLabel

Я сделал следующее, чтобы иметь разные цвета для ссылок в моем 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 ответа

Если вы хотите использовать разные цвета для разных ссылок, вам нужно создать отдельные словари атрибутов и вызвать 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];

Если вы хотите установить разные цвета для разных ссылок, вам следует отключить автоматические стили ссылок, установив для linkColor значение nil, а затем явно применить разные стили к вашим ссылкам.

Другие вопросы по тегам