はじめに
マークアップと比較して、iOSではテキストの中からURLを検知し、それをリンクとして処理するのに工数がかかる。
ActiveLabel
を使って、UILabelの中の#
をクリックしたときにTwitterのURLに飛ばす処理を備忘録として記録。
実装
「ハッシュタグをクリックしてURLを開く処理」に対するエラーハンドリングは実装してないので、参考までに。
ViewController.swift
import UIKit
import ActiveLabel
final class ViewController: UIViewController {
@IBOutlet private var label: ActiveLabel!
override func viewDidLoad() {
super.viewDidLoad()
label.handleHashtagTap { hashtag in
let appURL = URL(string: String.twitterURL)!
UIApplication.shared.open(appURL, options: [:], completionHandler: nil)
}
}
}
プレビュー
終わりに
UILabelの文字の中から正規表現を使わずに#
を認識してもらえるのは助かる
ActiveLabel
はURL, メールアドレスにも活用できるので、今後有効活用したい
参考リンク
ActiveLabel - Github
UIを作る際にライブラリにする?それともDIYする?の切り分けと実装のアイデア帳 (@Swift Tweets 2018 Spring)