読者です 読者をやめる 読者になる 読者になる

【swift】UILable内のurlをリンク化するライブラリ

はじめに

TTTAttributedLabelの紹介です

今回やりたかったのはラベルで文章を表示して、その中にhttp(httpsも)から始まる文字列があったら
HTMLのアンカーみたいなかんじにしてタップされたらブラウザなりWebビューなりを起動する。ということでした

イメージ的にはこんなかんじのUIです
f:id:yoppy0066:20151009013534p:plain

で、やっぱりやりたいことそのままの
TTTAttributedLabelというライブラリがありました。
おきまりのcocoapodsで導入できます

実装

ViewController.swift

import TTTAttributedLabel

class ViewController: TTTAttributedLabelDelegate
{
    var label: TTTAttributedLabel!

    override func viewDidLoad()
    {
        super.viewDidLoad()

        // インスタンスを生成
        self.label = TTTAttributedLabel(frame: CGRectNull)

        // urlをリンクにする設定
        self.label.enabledTextCheckingTypes = NSTextCheckingType.Link.rawValue

        // 通常のUILabelとおなじようにプロパティを設定できる
        self.label.font = UIFont.systemFontOfSize(14)

        // urlをタップされたときになにか処理する場合(Webビューやブラウザを起動したり)
        self.label.delegate = self

        self.view.addSubView(self.label)        
    }

    // urlリンクをタップされたときの処理を記述します
    func attributedLabel(label: TTTAttributedLabel!, didSelectLinkWithURL url: NSURL!)
    {
        // ・・・
    }
}

iosはやっぱりライブラリが使いやすいライブラリが多くてホント助かります
以上です