直接上代码
设置UiView的手势代理 UIGestureRecognizerDelegate
我遇到是view上tableview
第一种
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
if ([touch.view isDescendantOfView:self.tableView]) {
return NO;
}
return YES;
}
第二种
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
CGPoint point = [touch locationInView:self];
if (CGRectContainsPoint(self.tableView.frame, point)) {
return NO;
}
return YES;
}
第三种 这个有局限性 (谨慎使用)
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
if ([gestureRecognizer isKindOfClass:[UITapGestureRecognizer class]]) {
if ([NSStringFromClass([touch.view class]) isEqualToString:@"UIImageView"]) {
return NO;
}
}
return YES;
}