文章目录
1.示例1
let tap = UITapGestureRecognizer.init(target: self, action: #selector(tapView))
view.addGestureRecognizer(tap)
}
@objc func tapView() {
print("视图被点击")
}
2.UIImageView添加点击事件
func setupUI() {
let tap = UITapGestureRecognizer(target: self, action: #selector(topViewClick))
imageView.isUserInteractionEnabled = true
imageView.addGestureRecognizer(tap)
}
@objc func imageViewClick(tap: UIGestureRecognizer) {
print(tap)
print("被点击")
}
2.1 记得设置imageView.isUserInteractionEnabled = true, 默认为false
3.父视图响应子视图的点击事件
如果子视图没有响应点击事件会通过响应链自动传递到父视图,由父视图来响应改事件
参考博客:
iOS 响应链
4.点击到子视图的时候不响应tap手势
tap.delegate = self
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool {
if (touch.view?.isDescendant(of: parentView))! {
return false;
}else{
return true;
}
}