在swift中将目标添加到UITextView和UILabel

时间:2016-05-26 12:43:06

标签: ios swift

我有一个UITable,我有多个标签和文字视图。我想要一个触发touchupinside事件时调用的方法。我使用了targetForAction,但我无法在其中指定touchUpInside个事件。而且textview不可编辑

总的来说,我希望通过textview和label完成按钮对addTarget的作用。请帮帮我

3 个答案:

答案 0 :(得分:8)

添加let tap = UITapGestureRecognizer(target: self, action: #selector(self.doubleTapped(_:))) tap.numberOfTapsRequired = 1 yourlabel.tag = indexPath.row yourlabel.isUserInteractionEnabled = true yourlabel.addGestureRecognizer(tap) 并尝试

func doubleTapped(_ recognizer: UITapGestureRecognizer) {

        print(recognizer.view!.tag)

}

调用方法如

yourTextView.delegate = self

for textview

添加func textViewDidChange(textView: UITextView) { //do continue your work }

seaborn.despine

答案 1 :(得分:2)

  1. 确保userInteractionEnabled设置为true。
  2. 然后,

    1. 使用UITapGestureRecognizer

      -OR -

    2. 对视图进行子类化并实现touchesBegan:withEvent:以实现您想要的行为。

答案 2 :(得分:0)

在您UITableViewController中,您可以添加以下功能。 请注意,表格视图单元格不是一个按钮,这就是您不能只addTarget的原因。在此方法中,您将选择当前表格单元格并相应地执行操作。

class TableView: UITableViewController {

  override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

    tableView.deselectRowAtIndexPath(indexPath, animated: true)

    switch indexPath.row {
    case 1: // Change password
      print("Change password")
    ....// Add your cases 
    default:
      break
    }
  }
}

注意:您还可以在单​​元格中添加UIButton,但我认为这不是一个很好的做法。