我有一个`UITable`,其中包含多个标签和文本视图。我希望在触发`touchUpInside`事件时调用方法。我尝试使用`targetForAction`方法,但无法指定`touchUpInside`事件。而且,文本视图不可编辑。
总的来说,我希望能够像按钮一样使用`addTarget`方法来操作文本视图和标签,请帮帮我。
总的来说,我希望能够像按钮一样使用`addTarget`方法来操作文本视图和标签,请帮帮我。
添加 Gesture
并尝试
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)
}
对于TextView
添加 yourTextView.delegate = self
func textViewDidChange(_ textView: UITextView) {
//do continue your work
}
您可以在此查看其他类似的方法。
yourlabel.userInteractionEnabled = true
。 - vlzuserInteractionEnabled
属性设置为 true。然后,要么:
-或-
子类化视图并实现 touchesBegan:withEvent:
方法以实现所需的行为。
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
,但我认为这不是一个好的做法。
UITapGestureRecognizer
?tableView:didSelectRowAtIndexPath:
不够用吗? - LarmedidSelectRowAtIndexPath:
中,我该如何知道所触摸的对象是否为UITextView
? - Prashanth Narasimha