我有一个UITable
,我有多个标签和文字视图。我想要一个触发touchupinside事件时调用的方法。我使用了targetForAction
,但我无法在其中指定touchUpInside
个事件。而且textview不可编辑
总的来说,我希望通过textview和label完成按钮对addTarget
的作用。请帮帮我
答案 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)
userInteractionEnabled
设置为true。然后,
-OR -
对视图进行子类化并实现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
,但我认为这不是一个很好的做法。