web-dev-qa-db-ja.com

NSLinkAttributeNameフォントの色の設定

私は簡単なものが足りないように感じますが、これを行う方法を見つけることができないようです:

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

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

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

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

リンクに固有であるとは思えない別の色属性名はありますか?

21
Oren
  1. UITextView
  2. UITextViewlinkTextAttributesを次のように設定します。

    textView.linkTextAttributes = @{NSForegroundColorAttributeName:[UIColor whiteColor]};
    
63
Justin Moser

txtLabel.linkAttributes = @{};

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

3
SeiU

実際には、ラベルに TTTAttributedLabel を使用し、次のことを実行できました。

NSDictionary *linkAttributes = @{(id)kCTForegroundColorAttributeName: [UIColor whiteColor],
                                 (id)kCTUnderlineStyleAttributeName: [NSNumber numberWithInt:kCTUnderlineStyleSingle]
                                 };
self.lblDescription.linkAttributes = linkAttributes;    
3
Oren

Swift(他の参照用)の場合:

// Color the links
var linkAttributes: NSMutableDictionary = NSMutableDictionary()
linkAttributes.setValue(self.appDelegate.variables.color320, forKey: NSForegroundColorAttributeName)

myTextView.linkTextAttributes = linkAttributes as [NSObject : AnyObject]
2
Alex

Swift 3の場合

var aURL = "Http:// Your URL"
var description = "Click Me:"
let attributedString = NSMutableAttributedString(string: description + aURL)

/// Deal with link color
let foundURLRange = attributedString.mutableString.range(of: aURL)
attributedString.addAttribute(NSLinkAttributeName, value: aURL, range: foundURLRange)
textview.linkTextAttributes = [NSForegroundColorAttributeName: UIColor.yellow]

/// Deal with description color
let foundDescriptionRange = attributedString.mutableString.range(of: description)
attributedString.addAttribute(NSForegroundColorAttributeName, value: UIColor.red, range: foundDescriptionRange)

textview.attributedText = attributedString

enter image description here

2
Stephen Chen

これは私にとってはうまくいきます:

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];
}
1
gschool

説明:

これは驚くほど簡単です。link検出をサポートするテキストコンポーネントには、linkTextAttributesというプロパティがあります。

このプロパティはstyleを格納します。コンポーネントは、新しいリンクを検出したときに、リンクを適用できます。

要約すると、スタイルが適用され、次にstyleがこのプロパティに(この順序で)格納され、目的のスタイルが正常にオーバーライドされます。

ソリューション:

このプロパティを空に設定します(linkTextAttributes = [:])、リンクスタイルを完全に制御します。


ヒント:ボタンのように動作するUITextViewtouchable要素を作成するために使用できます。本当に素敵な効果を作成する????

1
Hugo Alonso