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を起動したりと色々できるので
リンク検知でゴニョゴニョしたいときは便利だと思います!

blog-page_footer_336




blog-page_footer_336




-iOS
-

執筆者:


comment

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

CAPTCHA


関連記事

swift

[Swift]iPadのActionSheet表示でクラッシュする問題

1 はじめに2 エラー内容2.1 エラー原因2.2 まだこれで解決ではない3 さいごに はじめに こんにちは、nukkyです。 私は普段iPhoneアプリの開発を主に行っているのですが 慣れか油断かi ...

swift

[Swift]UIViewからUIImageを作成しローカルに保存

1 はじめに1.1 前提条件2 実装2.1 UIViewからUIImageへ2.2 UIImageをローカルに保存2.3 おまけ:画像のリサイズ3 さいごに4 おすすめ書籍 はじめに こんにちは、nu ...

[Swift]AlertControllerでメモリリークが起きた!便利なMemory Graph

1 はじめに2 今回の問題2.1 deinitの調査2.2 原因の調査3 解決策4 Memory Graphについて5 さいごに6 おすすめ書籍 はじめに こんにちは、suzukiです。この記事の結論 ...

Sign in with Appleの実装

1 はじめに2 Sign in with Appleとは2.1 iOS レビューガイドライン2.2 つまり3 準備4 実装5 デザイン6 さいごに7 おすすめ書籍 はじめに こんにちは、nukkyです ...

swift

Swiftの「UIActivityViewController」でTwitterにだけハッシュタグをつけたい!

1 はじめに2 実装2.1 まずはやってみよう2.2 Twitter連携時のみにハッシュタグをつけたい3 さいごに はじめに こんにちわ、nukkyです。 今回はSNSやメール連携したいときに便利な ...

フォロー

follow us in feedly

blog-page_side_responsive

2017年4月
 1
2345678
9101112131415
16171819202122
23242526272829
30 

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。
Get it on App Store
Get it on Google Play