我觉得我错过了一些简单的事情,但我似乎无法知道如何做到这一点:
我将属性设置为如此链接:
[myAttrString addAttribute:NSLinkAttributeName value:linkURL range:selectedRange];
虽然有效,但链接是蓝色的,我似乎无法改变颜色。这会将除链接之外的所有内容设置为白色:
[myAttrString addAttribute:NSForegroundColorAttributeName value:[UIColor whiteColor] range:selectedRange];
是否有其他颜色属性名称,我似乎无法找到特定于链接的?
答案 0 :(得分:63)
UITextView
设置UITextView
的{{1}},如下所示:
linkTextAttributes
答案 1 :(得分:3)
我实际上最终使用TTTAttributedLabel作为我的标签,然后能够完成以下工作:
NSDictionary *linkAttributes = @{(id)kCTForegroundColorAttributeName: [UIColor whiteColor],
(id)kCTUnderlineStyleAttributeName: [NSNumber numberWithInt:kCTUnderlineStyleSingle]
};
self.lblDescription.linkAttributes = linkAttributes;
答案 2 :(得分:3)
txtLabel.linkAttributes = @{};
这是正确的,在设置任何其他属性之前调用此行
答案 3 :(得分:2)
对于swift(供其他人参考):
public static DataTable datatable2 = new DataTable();
public void createDatatable()
{
profile p = new profile();
DataTable datatable1 = p.getResults(System.Convert.ToInt32(HttpContext.Current.Session["ID"]));
foreach (DataRow dr in datatable1.Rows)
{
datatable2 = datatable1.Copy();
}
}
答案 4 :(得分: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];
}
答案 5 :(得分:1)
<强>解释强>
这非常简单,支持链接检测的文本组件具有名为linkTextAttributes
的属性。
此属性存储链接的样式,因为组件在检测到新链接时可以应用它。
总结一下,您的样式将被应用,然后样式存储在此属性中(按此顺序),成功覆盖您想要的样式。
<强>解决方案:强>
将此属性设置为空(linkTextAttributes = [:]
)并完全控制链接样式。
提示:这可用于在
UITextView
上创建可触摸元素,其行为类似于按钮。创造一个非常好的效果
答案 6 :(得分:1)
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
答案 7 :(得分:-1)
如果你使用TTTAttributedLabel,Oren的答案是有效的。但是你需要注意注释中linkAttributes的警告。
/ **
包含默认NSAttributedString
的字典 要应用于检测到或手动添加到的链接的属性 标签文字。默认链接样式为蓝色并带下划线。@warning您必须在设置自动编码之前指定
linkAttributes
或 手动添加要应用的这些属性的链接 * /@property(nonatomic,strong)NSDictionary * linkAttributes;