私は簡単なものが足りないように感じますが、これを行う方法を見つけることができないようです:
次のように属性をリンクに設定します。
[myAttrString addAttribute:NSLinkAttributeName value:linkURL range:selectedRange];
それは機能しますが、リンクは青色であり、色を変更できないようです。これにより、リンク以外のすべてが白に設定されます。
[myAttrString addAttribute:NSForegroundColorAttributeName value:[UIColor whiteColor] range:selectedRange];
リンクに固有であるとは思えない別の色属性名はありますか?
UITextView
UITextView
のlinkTextAttributes
を次のように設定します。
textView.linkTextAttributes = @{NSForegroundColorAttributeName:[UIColor whiteColor]};
txtLabel.linkAttributes = @{};
これは正しいものです。他の属性を設定する前にこの行を呼び出してください
実際には、ラベルに TTTAttributedLabel を使用し、次のことを実行できました。
NSDictionary *linkAttributes = @{(id)kCTForegroundColorAttributeName: [UIColor whiteColor],
(id)kCTUnderlineStyleAttributeName: [NSNumber numberWithInt:kCTUnderlineStyleSingle]
};
self.lblDescription.linkAttributes = linkAttributes;
Swift(他の参照用)の場合:
// Color the links
var linkAttributes: NSMutableDictionary = NSMutableDictionary()
linkAttributes.setValue(self.appDelegate.variables.color320, forKey: NSForegroundColorAttributeName)
myTextView.linkTextAttributes = linkAttributes as [NSObject : AnyObject]
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
これは私にとってはうまくいきます:
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];
}
説明:
これは驚くほど簡単です。link検出をサポートするテキストコンポーネントには、linkTextAttributes
というプロパティがあります。
このプロパティはstyleを格納します。コンポーネントは、新しいリンクを検出したときに、リンクを適用できます。
要約すると、スタイルが適用され、次にstyleがこのプロパティに(この順序で)格納され、目的のスタイルが正常にオーバーライドされます。
ソリューション:
このプロパティを空に設定します(linkTextAttributes = [:]
)、リンクスタイルを完全に制御します。
ヒント:ボタンのように動作する
UITextView
にtouchable要素を作成するために使用できます。本当に素敵な効果を作成する????