iOS

SwiftでTTTAttributedLabelの文字列からリンク表示

投稿日:2017年4月26日 更新日:

はじめに

こんにちは。

はじめましてnukkyです!

よくある挙動ですが、リンクが含まれる文字列を表示する際に
リンクのタップでブラウザを開きたいとなることがあると思います。

そこで、今回はTTTAttributedLabelを使用し、
文字列からリンクの表示、リンクタップ制御を行います。

TTTAttributedLabelとは

リッチなテキストを表示するためのUILabelの機能を拡張するOSSです。
その機能の一つに文字列からリンクを検出してくれる機能があるので
今回は主にその部分の実装についてになります。

https://github.com/TTTAttributedLabel/TTTAttributedLabel#tttattributedlabel

CocoaPodsでインストール

インストールにはCocoaPodsを使用します。

それと、TTTAttributedLabelはObjective-Cで書かれているので
Bridging-Header.hにimportしてください。

実装

Labelの表示

まずはTTTAttributedLabelをimportします。

StoryboardにUILabelを用意し
ClassにTTTAttributedLabelを指定してください。
それをIBOutlet接続します。

テキストのリンクをタップできるように設定します。

リンクを含むテキストをセットします。

そうするとこのような表示になります。

タップの検知

このままだとタップが検知できないので
TTTAttributedLabelDelegateを設定します。

LabelのDelegateを設定します。

テキスト内のリンクがタップされた場合、以下のメソッドが呼ばれます。

これで、文字列からリンクを表示、リンクタップ制御ができたと思います。

さいごに

UITextViewをつかえば標準でリンクの検知ができますが、
標準の外部ブラウザ起動しかできないので、
TTTAttributedLabelをつかえば、何か処理を挟んだり、
内部のWebViewを起動したりと色々できるので
リンク検知でゴニョゴニョしたいときは便利だと思います!

age_footer_300rect




age_footer_300rect




-iOS

執筆者:


comment

メールアドレスが公開されることはありません。

関連記事

swift

[Swift3] Segmentを使った画面切り替え (Extra View)

1 はじめに1.1 前提条件2 Segmentの用意3 表示したいViewを用意4 Extra Viewsに追加5 Segmentでの切り替え5.1 デフォルトで表示されるViewを設定5.2 Seg …

swift

月と日を選択するpickerを作る

1 はじめに1.1 前提条件2 サンプル2.1 ピッカーのイメージ2.2 ピッカーのxibファイル2.3 実装したカスタムクラス2.4 呼び出し元のコード3 簡単な解説3.1 MonthAndDayP …

swift

Swift3 + Alamofire4 + Unbox2.4を使ってJSONをパースする

1 はじめに1.1 前提条件1.2 完成形2 モデルの作成3 APIクラスの作成4 ViewControllerの作成4.1 Delegateの指定4.2 TableViewの設定4.3 Search …

swift

SwiftでS3への画像アップロード

1 はじめに2 AWS上での事前準備3 CocoaPodsでAWS SDKをインストールをする4 認証の設定をする5 UIImageを保存して、URLを取得する6 S3へアップロードする7 さいごに …

swift

Swiftの配列、辞書関連メソッドの基本

1 はじめに2 配列(Array)2.1 filter2.2 map2.3 reduce3 辞書(Dictionary)3.1 filter3.2 map3.3 reduce4 さいごに はじめに 普 …

page_side_300rect






follow us in feedly

2017年4月
« 3月   5月 »
 1
2345678
9101112131415
16171819202122
23242526272829
30