1) EL COMPONENTE DEBE SER UN TEXTVIEW
quitar el Editable del componente y el Scrolling enabled
2)
extension to NSMutableAttributedString:
import Foundation
extension NSMutableAttributedString {
public func setAsLink(textToFind:String, linkURL:String) -> Bool {
let foundRange = self.mutableString.rangeOfString(textToFind)
if foundRange.location != NSNotFound {
self.addAttribute(NSLinkAttributeName, value: linkURL, range: foundRange)
return true
}
return false
}
}
3) En la VIEW, VIEWCONTROLLER
añadir el UITextViewDelegate
let first = String.init(format: "%@ | %@\n\n%@ | %@ | %@", "cookies".localized, "privacy_policy".localized,"legal_terms".localized, "cmmedia".localized, "contact".localized);
let attributedString = NSMutableAttributedString(string:first)
let _ = attributedString.setAsLink(textToFind: "cookies".localized, linkURL: "cookies")
let _ = attributedString.setAsLink(textToFind: "privacy_policy".localized, linkURL: "policy")
let _ = attributedString.setAsLink(textToFind: "legal_terms".localized, linkURL: "terms")
let _ = attributedString.setAsLink(textToFind: "cmmedia".localized, linkURL: "cmmedia")
let _ = attributedString.setAsLink(textToFind: "contact".localized, linkURL: "contact")
self.lblClicable.attributedText = attributedString;
self.lblClicable.isUserInteractionEnabled = true;
self.lblClicable.textColor = UIColor.white;
self.lblClicable.textAlignment = .center
self.lblClicable.delegate = self;
4) tratamiento del click
func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange) -> Bool {
NSLog(URL.absoluteString);
return false;
}