HTMLライクなデザインでテキストにハイパーリンクを付けることになりました。
各項目を入力して送信ボタンを押してください。何か分からないことがありましたら、こちらからお問い合わせください。
こんなケースですね。アンダーバーだけハイパーリンク化しないといけなかったんですね。これをUILabelを使って実現できるか色々調べて試してみました。
NSMutableAttributedStringを使う
NSMutableAttributedStringというクラスがあって、Stringに様々な属性を付加することができます。UILabelやUITextViewにはatributedTextというプロパティがあるので、このプロパティにNSMutableAttributedStringインスタンスをセットするとアンダーラインや文字色など変化あるテキストを表示することができます。WindowsやAndroidだとマークアップ言語に記述できるのですが、iOSだとコードビハインドで遅れていますね。まあ、しょうがないです。
let textView = UITextView() textView.isSelectable = true textView.isEditable = false let text = "各項目を入力して送信ボタンを押してください。何か分からないことがありましたら、こちらからお問い合わせください。" let attributedString = NSMutableAttributedString(string: text) let range = NSString(string: text).range(of: "こちらからお問い合わせください") attributedString.addAttribute(NSAttributedStringKey.link, value: "https://www.yahoo.co.jp/", range: range) attributedString.addAttribute(NSAttributedStringKey.underlineStyle, value: 1, range: range) textView.attributedText = attributedString
これで「こちらからお問い合わせください」だけハイパーリンク化されます。しかしこれはUITextViewを使った場合です。