美文网首页
iOS 开发中遇到TableView 与单击手势冲突问题

iOS 开发中遇到TableView 与单击手势冲突问题

作者: 镌写不一样的人生 | 来源:发表于2017-02-09 13:44 被阅读0次

在iOS 开发过程中,有时会遇到界面既需要tableView 的点击事件,又需要在当前View添加手势,我们知道,如果直接加手势,会导致tableView的代理方法- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath  在点击cell 时不调用,偶然间发现这种情况下,长按cell 反而会触发这个代理方法,从而可以知道,如果出现tableView的cell点击代理方法不执行,长按cell反而有响应 ,十有八九是与手势冲突了,这样提供了一个定位该类bug的思路。下面说说解决tableView 与手势冲突的办法,在手势的代理方法内,区分手势的响应区域即可,代码如下:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch

{

if ([touch.view  isKindOfClass:[UITableViewCell class]]) {

return NO;

}else if ([touch.view.superview isKindOfClass:[UITableViewCell class ]]){

return NO;

}

return YES;

}

相关文章

网友评论

      本文标题:iOS 开发中遇到TableView 与单击手势冲突问题

      本文链接:https://www.haomeiwen.com/subject/ysviittx.html