我有一个显示为modalPresentationStyle = .overCurrentContext
的UIViewController。
此上下文视图(self.view
)具有backgroundColor = .clear
和一个名为content
的子视图。
content
是具有白色背景的完整边界宽度和一半边界高度。
我已将UITapGestureRecognizer添加到self.view
,但我不能告诉您在点击重叠视图(content
)时不要触发tap操作。
关于如何仅在用户点击视图而不是子视图时触发操作的想法?
答案 0 :(得分:1)
您需要遵循UIGestureRecognizerDelegate
,然后实现shouldReceive touch
委托方法:
extension ViewController: UIGestureRecognizerDelegate {
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool {
if let touchView = touch.view {
if touchView.isDescendant(of: view) {
return false
}
}
return true
}
}
因此,如果触摸区域是subView,则点击手势将被忽略。