您可以使用现有的有源标签框架的工作,我在github上,因为我用的是同为实现我的目标,这是工作细
https://github.com/optonaut/ActiveLabel.swift
例
func setupAgreement() {
let customType1 = ActiveType.custom(pattern: "\\sterms of service\\b") //Looks for "are"
let customType2 = ActiveType.custom(pattern: "\\sprivacy policy\\b") //Looks for "it"
let customType3 = ActiveType.custom(pattern: "\\scookie use\\b") //Looks for "supports"
userAgreementLabel.enabledTypes.append(customType1)
userAgreementLabel.enabledTypes.append(customType2)
userAgreementLabel.enabledTypes.append(customType3)
userAgreementLabel.customize { (label) in
label.text = "UserAgreement".localized
label.numberOfLines = 0
label.lineSpacing = 4
label.textColor = UIColor(red: 0/255, green: 0/255, blue: 0/255, alpha: 1)
//Custom types
label.customColor[customType1] = Constant.AppColor.blueColor
label.customSelectedColor[customType1] = Constant.AppColor.blueColor
label.customColor[customType2] = Constant.AppColor.blueColor
label.customSelectedColor[customType2] = Constant.AppColor.blueColor
label.customColor[customType3] = Constant.AppColor.blueColor
label.customSelectedColor[customType3] = Constant.AppColor.blueColor
label.configureLinkAttribute = { (type, attributes, isSelected) in
var atts = attributes
switch type {
case customType1:
atts[NSFontAttributeName] = UIFont(name: self.userAgreementLabel.font.fontName, size: 15.0)
case customType2:
atts[NSFontAttributeName] = UIFont(name: self.userAgreementLabel.font.fontName, size: 15.0)
case customType3:
atts[NSFontAttributeName] = UIFont(name: self.userAgreementLabel.font.fontName, size: 15.0)
default:()
}
return atts
}
label.handleCustomTap(for: customType1, handler: { (value) in
self.load(cms: .terms)
})
label.handleCustomTap(for: customType2, handler: { (value) in
self.load(cms: .privacy)
})
label.handleCustomTap(for: customType3, handler: { (value) in
self.load(cms: .cookie)
})
}
}
// func navigateToWebView() {
// let controller = self.storyboard?.instantiateViewController(withIdentifier: Constant.StoryBoardIdentifier.webViewController)
// self.present(controller!, animated: true, completion: nil)
//
// }
func load(cms: CMS) -> Void {
let cmsController: CMSViewController = UIStoryboard(storyboard: .setting).initVC()
cmsController.cms = cms
show(cmsController, sender: cmsController.classForCoder)
}
看到此HTTPS:/ /stackoverflow.com/questions/995219/how-to-make-uitextview-detect-links-for-website-mail-and-phone-number –
nop,与我试图访问网络的链接.. 。但只是到另一个视图 –
使用'shouldInteractWith'并处理您的链接 –