前言
今天写聊天界面,在设置了 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
}
无关
不积跬步,无以至千里;不积小流,无以成江海。