2017-08-17 7 views
0

私は、(@)とハッシュタグ(#)のラベルに似ている名前のアクションラベルを作成したいと思っています。別のView Controllerに送信します。私はこれを検索して、カッコアポッドだけを見つけました。これは言及とハッシュタグのためです。 これはどのように実装しますか?テキスト上のアクションラベル

例:マークスミスは写真が気に入りました。それから私は "マークスミス"を押すことができ、彼は彼のプロフィールに私を送るでしょう。

+0

あなたが' 'NSMutableAttributedString'と一緒にUILabel'の' attributedText'を使用することができます。 – clemens

+0

どのように私はそれとsegue関数を統合しますか? – fphelp

+0

これはちょっと複雑です。強調表示されたテキストにカスタム属性を使用できます。ユーザーがラベルをタップすると、ラベルの指の位置を使用して属性付き文字列の文字列インデックスを判断できます。これにより、ユーザーがカスタム属性のある場所に触れたかどうかを判断できます。このカスタム属性を使用すると、何をすべきかを決めることができます。 – clemens

答えて

1

たぶん、あなたはこの単純なコード実行、UITextViewでUILabelを置き換えることができます。

`func addLinkLabel() { 
    let textView = UITextView.init(frame: CGRect.init(x: 10, y: 150, width: 400, height: 100)) 
    self.view.addSubview(textView) 

    let attributedString = NSMutableAttributedString.init(string: "Touch me,you'll be sent to another ViewController.") 
    attributedString.addAttribute(NSLinkAttributeName, value: "aa", range: NSRange.init(location: 0, length: 8)) 
    textView.attributedText = attributedString 
    textView.font = UIFont.systemFont(ofSize: 17) 
    textView.linkTextAttributes = [NSFontAttributeName:UIFont.boldSystemFont(ofSize: 20), 
            NSForegroundColorAttributeName:UIColor.red] 
    textView.isEditable = false 
    textView.delegate = self; 

} 

func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange, interaction: UITextItemInteraction) -> Bool { 
    if String(describing: URL) == "aa" { 
     print("Here we go...") 
     self.navigationController?.pushViewController(SecondViewController(), animated: true) 
     return true 
    } 
    return false 
} 

`

+0

私はこのプロジェクトを私のプロジェクトに実装するのが大好きですが、どのようにしてこの作業をテーブルビューのセル内で行うのですか?私はそれを右に得るように見えない – fphelp

+0

最近忙しく、遅く返事している、私は試してみるだろう。 – SolinLiu

+0

私はちょうど今試しましたが、あなたのカスタムセルのデリゲートを設定することができますし、あなたはそれを行います。 '' func textView(_ textView:UITextView、shouldInteractWith URL:URL、characterRange:NSRange) - > Bool { if String記述:URL)== "AA" {? プリント( "ここでは...行く") self.delegate .pushToNextViewController真() リターン }が偽 } ' – SolinLiu

関連する問題