我有一个可以通过平移手势移动的 View ( super View ),该 View 有带有 TouchDown 事件的 subview (UIButton)。但是,当我按下按钮(已处理触地事件)并继续移动手指时,我的 super View 开始处理平移手势方法。 当我触地其 subview 时,如何禁用处理 super View 的平移手势方法?
最佳答案
要禁用 UIView subview 上的触摸事件,您可以将此扩展添加到 UIViewController
:
extension UIViewController:UIGestureRecognizerDelegate {
func hideKeyboardWhenTappedAround() {
let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(UIViewController.dismissKeyboard))
view.addGestureRecognizer(tap)
tap.delegate = self
}
func dismissKeyboard() {
view.endEditing(true)
}
public func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool {
if (touch.view!.isDescendantOfView(self.view) && touch.view != self.view){
return false
}
return true
}
}
关于ios - 当触地按钮( subview )时,不要处理 super View 上的平移手势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36861002/