签订了delegate, 点击 tableViewCell 不走点击方法.

前言

今天写聊天界面,在设置了 delegate 的情况下, cell 的点击方法不走. 回过头去,看代码,发现自己之前添加的手势对其有影响.故随手记下.


  • 可能存在原因

  • 1.未设置tablevIew的代理
  • 2.所在的视图上有手势存在
  • 3.所加载的Cell上有手势存在
  • 解决方式(问题2)

下面是手势的代理方法, 在方法里面做个判断,是手势还是点击 cell.

#pragma mark - 手势代理, 判断是添加的手势�还是 tableView
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
    // 输出点击的view的类名
    NSLog(@"%@", NSStringFromClass([touch.view class]));
    // 若为UITableViewCellContentView(就是击了tableViewCell),则不截获Touch事件(就是继续执行Cell的点击方法)
    if ([NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"]) {
        return NO;
    }
    return YES 
}

无关

不积跬步,无以至千里;不积小流,无以成江海。


你可能感兴趣的:(签订了delegate, 点击 tableViewCell 不走点击方法.)