【Swift】UITextViewでHTMLを表示してアンカータグをタップ可能にする
やりたいこと
UITextViewでhtmlを表示してアンカータグをタップ可能にかっただけなのですが、巷の記事を参考にしても実装が出来なかったので成功体験を共有できればと思います。
環境
- Xcode:12.5.1
- Swift:5.4.2
実装
NSAttributedString型に変換する際にオプションを指定してあげるだけです。
これでHTMLとして表示することが可能です。
textView.attributedText = convertToAttributeString(contents: information.infoContents)
private func convertToAttributeString(text: String) -> NSAttributedString? {
guard let data = text.data(using: .utf8) else { return nil }
do {
return try NSAttributedString(data: data, options: [.documentType: NSAttributedString.DocumentType.html, .characterEncoding:String.Encoding.utf8.rawValue], documentAttributes: nil)
} catch {
return nil
}
}
アンカータグをタップしたときにブラウザで開けるようにする
UITextViewのプロパティを設定する必要があります。
ポイントは以下の点です。
- Behaviorの
Selectable
をtrueにする - Behaviorの
Editable
をfalseにする - Data Detectorsの
Link
をtrueにする - Interactionの
User Interaction Enabled
をtrueにする
Author And Source
この問題について(【Swift】UITextViewでHTMLを表示してアンカータグをタップ可能にする), 我々は、より多くの情報をここで見つけました https://qiita.com/Crea7/items/5fcd7a53753e0832283f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .