如何在IOS8 swift中突出显示文本(在UILabel中)并将其转换为可点击的链接/按钮

时间:2015-05-04 15:21:35

标签: ios swift nsstring

我是iOS新手。
在我的项目中,我有一个帖子可以用来提及下面的人:

UILabel

将此作为IBAction呈现的最佳方式是什么,所有以@(@toni,@ sshea)开头的单词都会突出显示,并可通过某个{{1}}处理程序进行点击。这在html和js中非常简单,但我无法弄清楚如何使用swift iOS。

2 个答案:

答案 0 :(得分:0)

看看TTTAttributedLabel。它可以做你想做的一切。 UILabel本身相对有限。

https://github.com/TTTAttributedLabel/TTTAttributedLabel

答案 1 :(得分:0)

您可以使用UITextView,将其attributionString属性设置为包含链接的属性。 UITextView需要打开其识别链接属性,并关闭滚动。您需要在代码中创建链接,或者您可以创建HTML并将其转换为NSAttributedString。

   // Converting HTML to attributed string
extension String {
    var htmlToAttributedString: NSAttributedString? {
        guard let data = data(using: .utf8) else {
            return nil
        }
        do {
            let options: [String:Any] = [
                NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType,
                NSCharacterEncodingDocumentAttribute: String.Encoding.utf8.rawValue
            ]
            return try NSAttributedString(data: data, options: options, documentAttributes: nil)
        } catch let error as NSError {
            print(error.localizedDescription)
            return  nil
        }
    }
}