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

在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;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、禁止手机睡眠[UIApplication sharedApplication].idleTimerDisabl...
    DingGa阅读 1,144评论 1 6
  • 概述在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以看到它的影子,类似...
    liudhkk阅读 9,091评论 3 38
  • 1.badgeVaule气泡提示 2.git终端命令方法> pwd查看全部 >cd>ls >之后桌面找到文件夹内容...
    i得深刻方得S阅读 4,757评论 1 9
  • 人与人的关系是一种很微妙的链接,在你来我往中,在接人待物中,在生活的每一秒中,关系来源于生活,在生活中酝酿...
    歪理邪说之爽曰阅读 161评论 0 2
  • 窗外的风越来越重,转眼大寒将至,我即将结束这个学期的生活。想来,这一年的多多少少,收获很重要。 一月,我遇到了一个...
    小笏园阅读 503评论 0 0