2017-11-24 36 views
0

私のラベルにhtmlデータがあり、クリック可能にする方法があります。
私のHTMLデータが正常に表示されますが、変換方法はわかりません。
私には良い提案がありますか?
おかげ
ラベルはhtmlデータを表示し、画像とリンクをクリックでスクロール可能にします

htmlData content here.

これは私のラベルコードです:

let htmlData = "" 

do { 
     let attrStr = try NSAttributedString(
      data: htmlData.data(using: String.Encoding.unicode, allowLossyConversion: true)!, 
      options: [ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType], 
      documentAttributes: nil) 
     self.label.attributedText = attrStr 
    } catch let error { 
     print(error) 
    } 

pic1

+0

は 'UITextView'、ない' UILabel'を使用してください。 「UILabel」はクリック可能ではありません。 CocoaPods/GitHub/CocoaControlsなどにはすでにたくさんのソリューションがあります。簡単な方法は 'UITextView'を使うことです。小さな変更を加えるとUILabelのように見えますユーザー。 – Larme

+0

申し訳ありませんが、私にサンプルを持っていますか? –

+1

swiftを使った[NSAttributedString clickイベント]の可能な複製(https://stackoverflow.com/questions/38565603/nsattributedstring-click-event-in-uilabel-using-swift) – Larme

答えて

1

ラベルがハイパーリンクを検出しないかもしれませんが、 "WebViewの" ん。

webView.loadHTMLString(dataHtmlString, baseURL: nil) 
0

次のようにあなたは、ラベルにタップジェスチャーを追加することができます。

let tap = UITapGestureRecognizer(target: self, action: #selector(labelTapped)) 
label.isUserInteractionEnabled = true 
label.addGestureRecognizer(tap) 

@objc func labelTapped() { 
    // your code when label is tapped goes here 
} 
+0

しかし、私のHTMLデータ文字列でリンクのURLを取得する方法は? –

+0

そして、ユーザーがどのリンク(1番目または2番目)をクリックしたかを知る方法は? –