文字上的行动标签

时间:2017-08-17 01:17:28

标签: ios swift xcode swift3 uilabel

我有一个Xcode项目,我想为名称制作一个动作标签,类似于提及(@)和hashtags(#)标签,其中加粗,我可以按下它,它会将我发送到另一个视图控制器。我已经为此搜索了一下,并且只发现了用于提及和标签的可可豆荚。 如何实施?

示例:" Mark Smith 喜欢你的照片。"然后我就可以按下#Mark; Mark Smith"它会把我发给他的个人资料。

1 个答案:

答案 0 :(得分: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
}

`