UITableView后台查看平移手势
UITableView background view pan gesture
我想使用 UIView 作为 UITableView 的背景视图,我设置了 UITableView 的内容插入,所以用户可以向下滚动 table 视图以显示背景视图,我还需要添加 pan并在背景视图上拖动手势让用户进行一些操作,但我发现它似乎不起作用。
有人有好的解决方案吗?
UITableView
有自己的 panGestureRecognizer
。所以它调用上下滚动。您应该使用它而不是添加新手势。
已更新:
尽管您向下滚动 table 视图并使背景视图可见,但它位于 table 视图的框架中,触摸事件应由 table 视图处理。一言以蔽之,决定反应的是框架。
如何解决这个问题
尝试在视图控制器中执行此操作:
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
if let touch = touches.first {
if let tableView = touch.view as? UITableView {
if tableView.contentOffset.y < tableView.contentInset.top {
let point = touch.locationInView(backgroundView)
backgroundView.hitTest( point, withEvent: event)
}
}
}
}
我想使用 UIView 作为 UITableView 的背景视图,我设置了 UITableView 的内容插入,所以用户可以向下滚动 table 视图以显示背景视图,我还需要添加 pan并在背景视图上拖动手势让用户进行一些操作,但我发现它似乎不起作用。
有人有好的解决方案吗?
UITableView
有自己的 panGestureRecognizer
。所以它调用上下滚动。您应该使用它而不是添加新手势。
已更新:
尽管您向下滚动 table 视图并使背景视图可见,但它位于 table 视图的框架中,触摸事件应由 table 视图处理。一言以蔽之,决定反应的是框架。
如何解决这个问题
尝试在视图控制器中执行此操作:
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
if let touch = touches.first {
if let tableView = touch.view as? UITableView {
if tableView.contentOffset.y < tableView.contentInset.top {
let point = touch.locationInView(backgroundView)
backgroundView.hitTest( point, withEvent: event)
}
}
}
}