原理:由于UITableViewCell本身就遵守 UIGestureRecognizerDelegate ,所以只需在自定义 Cell 的类中重写判断响应手势的代理方法,然后在里面获取要添加事件的子视图的坐标,并对其做相应设置即可。
override func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool {
let imgView:UIImageView = self.contentView.viewWithTag(100) as! UIImageView
let p:CGPoint = touch.locationInView(self.contentView)
if(CGRectContainsPoint(imgView.frame, p)){
showBigImg()
return false
}else{
return true
}
}