Lat*_*ate 5 uitableview touchesbegan uigesturerecognizer ios swift
我问了一个类似的问题,我已经阅读了无数其他问题,但我仍然无法解决这个问题,我现在花了几个晚上试图解决它.
我有一个自定义的UITableView类,我已经将其子类化为不同的东西.在我的子类中,我用户覆盖了诸如didSelectRowAtIndexPath之类的东西.
如果我将它分配给一个表它可以正常工作,除了我必须长按才能触发didSelectRowAtIndexPath.Tap似乎根本不起作用.我在项目的其他地方确实有一个手势识别器,但是我已经将它们全部禁用了,而且我仍然没有运气.我已经读到这可能与超级或触摸开始有关但我觉得我现在完全陷入困境.请帮我!
class BaseTable: UITableView, UITableViewDelegate, UITableViewDataSource {
var rowsInSection: Int { return 0}
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)!
//Standard table set up funcs
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
{
print(IndexPath.row)
}
}
class NewTable: BaseTable{
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print (IndexPath.row + " NEW")
}
Run Code Online (Sandbox Code Playgroud)
Lat*_*ate 23
我想通了.我忘记了我有一个UIViewController扩展,可以解决键盘上的问题:
extension UIViewController {
func hideKeyboardWhenTappedAround() {
let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(UIViewController.dismissKeyboard))
view.addGestureRecognizer(tap)
}
Run Code Online (Sandbox Code Playgroud)
这是罪魁祸首!快速修复是添加:
tap.cancelsTouchesInView = false
Run Code Online (Sandbox Code Playgroud)
在添加手势识别器之前.不能相信我在这上面度过了3个晚上.
| 归档时间: |
|
| 查看次数: |
1796 次 |
| 最近记录: |