前言:
最近在项目中遇到didSelectRowAtIndexPath
方法不能响应的情况,具体提操作如下:
会出现点击 Cell 不起作用的,下面总结了几种
didSelectRowAtIndexPath
方法不能正常响应的情况:
- delegate 没有设置
- 可能tableview被其他控件覆盖。
- 手势与tableview点击事件冲突.
主要讲一下最后一种情况:
- 手势与tableview点击事件冲突
- 1.主要是父控件设置了代理
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tappedCancel)];
[bg addGestureRecognizer:tapGesture];
tapGesture.delegate = self;
- 2.只需要重写覆盖:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
if ([NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"]) {
return NO;
}
return YES;
}
网友评论