UITextView with hyperlink text

后端 未结 10 841
抹茶落季
抹茶落季 2020-11-27 19:23

With a non-editable UITextView, I would like to embed text like this in iOS9+:

Just click here to register

I can create a functi

10条回答
  •  我在风中等你
    2020-11-27 19:50

    The same solution for Swift 4 using extensions:

    extension UITextView {
    
    
        func hyperLink(originalText: String, hyperLink: String, urlString: String) {
    
                let style = NSMutableParagraphStyle()
                style.alignment = .left
    
                let attributedOriginalText = NSMutableAttributedString(string: originalText)
                let linkRange = attributedOriginalText.mutableString.range(of: hyperLink)
                let fullRange = NSMakeRange(0, attributedOriginalText.length)
                attributedOriginalText.addAttribute(NSAttributedStringKey.link, value: urlString, range: linkRange)
                attributedOriginalText.addAttribute(NSAttributedStringKey.paragraphStyle, value: style, range: fullRange)
                attributedOriginalText.addAttribute(NSAttributedStringKey.foregroundColor, value: UIColor.blue, range: fullRange)
                attributedOriginalText.addAttribute(NSAttributedStringKey.font, value: UIFont.systemFont(ofSize: 10), range: fullRange)
    
                self.linkTextAttributes = [
                   kCTForegroundColorAttributeName: UIColor.blue,
                   kCTUnderlineStyleAttributeName: NSUnderlineStyle.styleSingle.rawValue,
                ] as [String : Any]
    
    
                self.attributedText = attributedOriginalText
            }
    
    }
    

提交回复
热议问题