2

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];

しかし、リンクに 2 つの異なる色が表示されているのではなく、1 つだけ表示されています。ここで何が間違っていますか?基本的に、次のように addLink を介して追加したリンクがあります。

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

これにredColorを持たせたい。どうすればいいですか?

4

2 に答える 2

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];
于 2012-09-30T15:55:31.107 に答える
1

リンクごとに異なる色を設定したい場合は、linkColor を nil に設定して自動リンク スタイルを無効にしてから、リンクに異なるスタイルを明示的に適用する必要があります。

于 2012-10-02T08:38:41.967 に答える