tableView不响应Cell的点击方法可能有好多种情况所导致:
1.未设置tablevIew的代理
2.tableview所在的视图上有手势存在
3.tableview所加载的Cell上有手势存在
解决方式:
1.最简单的方式当然是设置代理,并且取消手势
2.第二种方法,在该界面添加手势并且设置手势代理为当前手势所在视图
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKeyBoard)];
tap.delegate = self;
tap.numberOfTouchesRequired = 1;
[self.view addGestureRecognizer:tap];
- (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;
}
3.传递响应者这种方式的写法是使用一个类去传递响应者,实际是让手势失效,这是在扩展Cell时一个逼格挺高的写法,后续找到代码更新上来.