如何在iOS中使用NSAttributedString为HTML链接着色

时间:2015-06-17 15:03:11

标签: html ios uitextview nsattributedstring

我使用UITextView显示HTML内容,除链接外,其工作正常。我可以为普通文本设置字体和颜色,如下所示:

let str = "<font size='4' style='color:red'>text is red</font>"

效果很好。但是当试图为这样的链接上色时,没有任何反应。

let str = "some text <a href='http://stackoverflow.com' style='color:red'> 
              link is not red!?</a> some text <a href='http://google.com' 
              style='color:green'> link is not green!?</a>"

这就是我将字符串设置为UITextView的方式。

var attrStr = NSAttributedString(
        data: str.dataUsingEncoding(NSUnicodeStringEncoding, allowLossyConversion: true)!,
        options: [ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType],
        documentAttributes: nil,
        error: nil)
myTextView.attributedText = attrStr

编辑:

可以使用此代码编辑所有链接颜色。根据链接不可能有不同的颜色,这是我正在寻找的。

myTextView.linkTextAttributes = [NSForegroundColorAttributeName: UIColor.greenColor()]

1 个答案:

答案 0 :(得分:1)

在iOS 7上,您可以设置UITextView的tintColor。它会影响链接颜色以及光标线和选定的文本颜色。

iOS 7还为UITextView添加了一个名为linkTextAttributes的新属性,它可以让您完全控制链接样式。

参考链接:Can I change the color of auto detected links on UITextView?

iOS开发者库链接:iOS Developer UITextView Class

参考上面的链接,我希望这对你有帮助。