IOS 不能触发didSelectRowAtIndexPath事件
今天遇到这个问题,在网上找到了答案,纪录一下
可能原因:
- delegate没有设置。
- 可能tableview被其他控件覆盖。
- 添加UITapGestureRecognizer手势识别后,UITableView的didSelectRowAtIndexPath失效,两者之间手势发生冲突。
答案:
- 前两种情况有没有问题,有的话解决掉,没有就跳过。
- 如果前两种情况都不是,那看看是不是你在什么地方添加了手势,如果添加了可能原因是:
UITapGestureRecognizer截获了touch事件,导致didSelectRowAtIndexPath方法无法响应。
查阅了相关文档后找到了一种可行的解决方法:重写UIGestureRecognizerDelegate中的- (BOOL)gestureRecognizer:(UIGestureRecognizer )gestureRecognizer shouldReceiveTouch:(UITouch )touch方法。
重写内容如下:
- (void)viewDidLoad
{
//注册手势的部分代码如下:
[super viewDidLoad];
UITapGestureRecognizer *oneTap = [[[U