随笔
今天开发中遇到一个很奇葩的问题,就是用tableView把界面写好之后,然后准备写点击事件。却发现死活不走didSelect这个协议方法。代理那些都设置了,直接断点打在那,却一直不走。开始认为是哪个控件把cell遮挡住了,然后我把所有的控件都注释掉,却发现还是不走。于是上网查了一下,有人说是因为这个方法
- (NSIndexPath *)tableView:(UITableView *)tableView
willSelectRowAtIndexPath:(NSIndexPath *)indexPath {
return nil;
}
我试了一下,这样的确不会走didSelect方法。因为我把自定义cell改为了UItableViewCell做实验。但是我代码中根本没写这个方法,所以不会是返回nil的原因。。然后我再仔细检查了一下,最终找到原因。
原因就是我在自定义tableViewCell中加了touchBegin这个方法
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
[_bgView removeFromSuperview];
}
把这个注释掉就可以了。。。