Pau*_*aul 1 touch uitableview ios swift
如何检测触摸UITableView?我试过这个帖子中的解决方案.我有我的tableView和scrollView在同UIViewController一个约束,所以它是复杂的子类tableView.
触摸方法不会被调用:
class ViewController: UIViewController, UIScrollViewDelegate, UITableViewDataSource, UITableViewDelegate {
@IBOutlet weak var verticalSpacing: NSLayoutConstraint!
@IBOutlet weak var scrollView: UIScrollView!
@IBOutlet weak var tableView: UITableView!
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
super.touchesBegan(touches, withEvent: event)
println("touch began")
}
override func touchesMoved(touches: NSSet, withEvent event: UIEvent) {
super.touchesMoved(touches, withEvent: event)
}
override func touchesEnded(touches: NSSet, withEvent event: UIEvent) {
super.touchesEnded(touches, withEvent: event)
println("touch ended")
}
override func touchesCancelled(touches: NSSet!, withEvent event: UIEvent!) {
super.touchesCancelled(touches, withEvent: event)
}
Run Code Online (Sandbox Code Playgroud)
我补充说:
tableView.userInteractionEnabled = true
tableView.canCancelContentTouches = false //or true is the same
Run Code Online (Sandbox Code Playgroud)
但它没有改变任何东西.它scrollView与...同时可见tableView,但它们不重叠.
小智 9
不需要子类化!
只需添加一个手势识别器,并确保包含一个呼叫 cancelsTouchesInView
这是Swift版本:
override func viewDidLoad() {
super.viewDidLoad()
view.addGestureRecognizer(UITapGestureRecognizer(target: self, action: "handleTap:"))
}
func handleTap(sender: UITapGestureRecognizer) {
if sender.state == .Ended {
// Do your thang here!
}
sender.cancelsTouchesInView = false
}
Run Code Online (Sandbox Code Playgroud)
请享用!
| 归档时间: |
|
| 查看次数: |
6180 次 |
| 最近记录: |