tableView委托方法
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath不执行了。
这个一般原因一下几点:
1,tableView是不是做了不可点击属性。tableView.allowsSelection = YES;
2,是不是被某个view给挡住了。
3,是不是添加过点击手势或者和其它点击手势有关联,
UITableView是不会响应touchesBegan:withEvent:之类的UIResponder的方法的。因此,加在其上的所有视图的响应者链就断了。如果在UITableView其上加任何的自身不具备类似UIButton一样有目标动作机制的UIView及其子类控件的时候,这个控件也不会响应touchesBegan:withEvent:方法。即便是设置该控件的userInteractionEnabled为YES也没用。
所以,就给表添加了UITapGestureRecognizer,但是加了之后 didSelectRow不执行,原因应该是UITapGestureRecognizer截获了touch事件,导致didSelectRowAtIndexPath方法无法响应。
解决方法:
重写UIGestureRecognizerDelegate中的
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch方法。