1.TableView点击cell时由于有手势加载到了view上,导致点击失效,这时候用实现手势UIGestureRecognizerDelegate中的方法消除
///消除手势与TableView的冲突
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool {
if NSStringFromClass((touch.view?.classForCoder)!) == "UITableViewCellContentView" {
return false
}
return true
}
-(BOOL)gestureRecognizer:(UIGestureRecognizer*)gestureRecognizer shouldReceiveTouch:(UITouch*)touch {
if([NSStringFromClass([touch.view class]) isEqual:@"UITableViewCellContentView"]){
return NO;
}
return YES;
}
2.CollectionView
//MAERK: - gestureRecognizerDelegate
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool {
if touch.view !== self.aCollectionView {
return false
}else {
return true
}
}
// 用这个方法也可以
#pragma mark - 手势
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
//isDescendantOfView判定一个视图是否在其父视图的视图层中
if([touch.view isDescendantOfView:self.collectionView]){
return NO;
}
return YES;
}