通过UITextView实现文本超链接,通过实现UITextViewDelegate的响应方法实现链接响应事件
效果图:
代码
首先,设置富文本,改变超链接的字体颜色
let string = "《用户协议》、《隐私协议》与您的利益切身相关。请您注册前务必仔细阅读!点击按钮即表示您同意并愿意遵守"
let str = NSMutableAttributedString.init(string: string)
let range = (string as NSString).range(of: "用户协议")
let range2 = (string as NSString).range(of: "隐私协议")
//添加超链接
str.addAttribute(NSAttributedString.Key.link, value: "privacy://", range: range)
str.addAttribute(NSAttributedString.Key.link, value: "user://", range: range2)
通过实现UITextViewDelegate的相关方法实现超链接响应时间
func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange) -> Bool {
if URL.scheme == "user" {
self.view.backgroundColor = UIColor.yellow
return true
}else if URL.scheme == "privacy" {
self.view.backgroundColor = UIColor.green
return true
}
return false
}