iOS 超链接

915 阅读1分钟

通过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

}