21

簡単なものが欠けているように感じますが、これを行う方法がわかりません。

次のように属性をリンクに設定します。

[myAttrString addAttribute:NSLinkAttributeName value:linkURL range:selectedRange];

それは機能しますが、リンクは青で、色を変更できないようです。これにより、リンク以外のすべてが白に設定されます。

[myAttrString addAttribute:NSForegroundColorAttributeName value:[UIColor whiteColor] range:selectedRange];

リンクに固有の、見つけられないように見える別の色属性名はありますか?

4

8 に答える 8

65
  1. 使うUITextView
  2. UITextViewを次のlinkTextAttributesように設定します。

    textView.linkTextAttributes = @{NSForegroundColorAttributeName:[UIColor whiteColor]};
    
于 2014-09-04T00:30:41.400 に答える
3

私は実際に自分のラベルにTTTAttributedLabelを使用することになり、完全に機能する次のことを行うことができました:

NSDictionary *linkAttributes = @{(id)kCTForegroundColorAttributeName: [UIColor whiteColor],
                                 (id)kCTUnderlineStyleAttributeName: [NSNumber numberWithInt:kCTUnderlineStyleSingle]
                                 };
self.lblDescription.linkAttributes = linkAttributes;    
于 2014-09-04T04:47:57.650 に答える
3

txtLabel.linkAttributes = @{};

これは正しいものです。他の属性を設定する前にこの行を呼び出します

于 2016-12-07T12:58:38.357 に答える
1

これは私のために働く:

txtLabel.linkAttributes = @{};

NSMutableAttributedString * string = [[NSMutableAttributedString alloc] initWithString:expression];

{
[string addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:result.range];

[string addAttribute:NSLinkAttributeName value:@"link" range:result.range];
}
于 2016-09-09T09:52:27.757 に答える
-1

TTTAttributedLabel を使用すると、Oren の回答が機能します。ただし、注釈の linkAttributes の警告に注意する必要があります。

/** 検出されたリンク、またはラベル テキストに手動で追加されたリンクに適用される
デフォルトの属性を含むディクショナリ。NSAttributedStringデフォルトのリンク スタイルは青色で下線付きです。

linkAttributes@warningこれらの属性を適用するには、autodecting または手動でリンクを追加する前に指定する必要があります。
*/

@property (非アトミック、強力) NSDictionary *linkAttributes;

于 2017-01-06T17:52:50.907 に答える