「利用規約に同意してログインする」的な UILabel で、タップしたら遷移するようにする。TTTAttributedLabel を使う。
Podfile に TTTAttributedLabel を追加
# Podfile
pod 'TTTAttributedLabel'
InterfaceBuilder
UILabel を配置するのと同じように、適当に配置する。Class を、 TTTAttributedLabel にしておく。
Linkをコードで設定する
var label : TTTAttributedLabel!
的なプロパティが設定してあるという前提で、文字列は「利用規約に同意してログインする」になってるとします。
Linkの設定
class SomeViewController: UIViewController, TTTAttributedLabelDelegate {
// ...
label.delegate = self
label.linkAttributes = [
kCTForegroundColorAttributeName: UIColor.grayColor(),
NSUnderlineStyleAttributeName: NSUnderlineStyle.StyleNone.rawValue
]
legalLabel.activeLinkAttributes = [
kCTForegroundColorAttributeName: UIColor.lightGrayColor(),
]
if let text = legalLabel.text {
let termsRange = NSString(string: text).rangeOfString("利用規約")
legalLabel.addLinkToURL(termsUrl, withRange: termsRange)
}
とする。 linkedAttributes でリンクが設定された文字列の見た目を規定して、activeLinkAttributes でリンクがタップされている間の文字列の見た目を設定できる。
delegateメソッドの設定
// MARK: TTTAttributedLabelDelegate
func attributedLabel(label: TTTAttributedLabel!, didSelectLinkWithURL url: NSURL!) {
if url == termsUrl {
// ここで某かの処理をすればOK
performSegueWithIdentifier("goToTerms", sender: nil)
}
}